使用"用IDLE编辑"与Python 2.6.5脚本
我在Windows上安装了Python的两个版本,分别是2.7.1和2.6.5。我在环境变量里只添加了Python 2.6.5的路径。现在,我想用Python 2.6.5来运行一个叫做x.py
的脚本。我知道怎么通过cmd
来运行这个脚本,但如果能直接用IDLE打开它并通过Run Module
选项来运行就更方便了。
通常情况下,我可以右键点击这个脚本,然后选择Edit with IDLE
,但这样做会用Python 2.7.1来打开和运行这个脚本。请问有没有办法用Python 2.6.5来打开和运行它呢?
2 个回答
在注册表中,Edit with IDLE
的标准命令如下:
"C:\Program Files\Python33\pythonw.exe" "C:\Program Files\Python33\Lib\idlelib\idle.pyw" -e "%1"
现在,你可以看到,路径是写死在里面的,所以它就不能像那样使用其他的Python解释器——至少默认情况下是这样。
不过,PEP 397引入了一个新的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
或者你想要的其他版本。