我已经在 Windows 上安装了 Python 2.7.1 和 2.6.5 版本。我在环境变量中只添加了 Python 2.6.5 的路径。现在,我想x.py
使用 Python 2.6.5 运行 Python 脚本。我知道如何使用,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 引入了一个新的 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
/或任何您想要的。