我在 Windows 上安装了 Python 2.7.1 和 2.6.5 版本。我在环境变量中只添加了Python 2.6.5的路径。
现在,我想使用 Python 2.6.5 运行 Python 脚本 x.py
。我知道如何使用 cmd
执行此操作,但使用 IDLE 打开它并使用 Run Module
选项在其中运行会更方便。
据称,这是通过右键单击脚本,然后转到 Edit with IDLE
选项来完成的,但这会使用 Python 2.7.1 打开并运行脚本。有没有办法用Python 2.6.5打开并运行它?
最佳答案
注册表中使用 IDLE 编辑
的标准命令如下:
"C:\Program Files\Python33\pythonw.exe" "C:\Program Files\Python33\Lib\idlelib\idle.pyw" -e "%1"
现在,正如您所看到的,路径被硬编码到其中,因此它不能使用这样的不同Python解释器——至少在默认情况下是这样。
但是,PEP 397为 Python 引入了一个新的 Python 启动器,使得基于 shebang 系列启动不同版本的 Python 成为可能。因此,以 #!/usr/bin/env python2
开头的文件将启动当前的 Python 2 解释器,而 #!/usr/bin/env python3
将使用 Python 3 .
使用该信息,您可以动态启动给定 Python 版本的 IDLE。例如,这将使用启动器的默认 Python 版本编辑文件:
C:\Windows\pyw.exe -m idlelib.idle -e "%1"
这将强制使用 Python 3
C:\Windows\pyw.exe -3 -m idlelib.idle -e "%1"
这将强制使用 Python 2:
C:\Windows\pyw.exe -2 -m idlelib.idle -e "%1"
所以你需要做的是编写一个脚本,基本上检查文件想要执行的Python版本,即通过手动解析shebang行(遗憾的是启动器没有给你这些信息尚未实际启动脚本。我可能会启动拉取请求以将此类功能引入核心)。然后,您可以使用上面的命令运行 Python 2 或 Python 3 IDLE 并完成。
您只需要更改Edit with IDLE
命令来执行脚本,然后它就会起作用。
一个非常简单的替代方案是添加另一个启动 Python 2 IDLE 的注册表项。因此,您将拥有 Edit with IDLE
和 Edit with IDLE (Py2)
或其他内容。
为此,只需将以下内容放入 .reg
文件中并执行即可:
Windows Registry Editor Version 5.00
[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\Python.File\shell\Edit with IDLE (Py2)]
[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\Python.File\shell\Edit with IDLE (Py2)\command]
@="C:\\Windows\\pyw.exe -2 -m idlelib.idle -e \"%1\""
编辑:我刚刚注意到我写的这篇文章主要是关于 Python 2 与 Python 3 的;我认为启动器附带了 Python 2.7,所以它的工作原理是一样的。您只需将启动器的版本说明调整为 -2.6
和 -2.7
或您想要的任何内容。
关于python - 将 "Edit with IDLE"与 Python 2.6.5 脚本结合使用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15343138/