我在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打开并运行它?
答案 0 :(得分:4)
Edit with 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
或您想要的任何内容。
答案 1 :(得分:1)