使用“使用IDLE编辑”和Python 2.6.5脚本

时间:2013-03-11 16:02:35

标签: python python-idle

我在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打开并运行它?

2 个答案:

答案 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 IDLEEdit 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)

你可以使用一些注册表黑客来使IDLE 2.6成为你的默认值(而不是2.7),但我认为这不是你想要的,因为当你想要测试某些东西时你必须扭转这个过程在2.7。除非其他人知道将其他IDLE安装集成到shell中的其他方法,否则以下是一些更好的选择:

  1. 首先打开IDLE 2.6,然后使用GUI中的“打开文件”对话框。

  2. 使用实际支持此功能的其他IDE。使用EclipsePyDev将允许您在运行之间切换解释程序,或使用不同的解释程序保存配置,等等。