如何在Windows上运行多个Python版本

261 投票
25 回答
404891 浏览
提问于 2025-04-16 09:20

我在我的电脑上安装了两个版本的Python(分别是2.6和2.5)。我想在一个项目中使用2.6,而在另一个项目中使用2.5。

我该怎么指定我想用哪个版本呢?

我现在使用的是Windows XP SP2。

25 个回答

62

根据@alexander的说法,你可以像下面这样创建一组符号链接。把它们放在一个包含在你的路径中的地方,这样就可以很方便地调用它们。

> cd c:\bin
> mklink python25.exe c:\python25\python.exe
> mklink python26.exe c:\python26\python.exe

只要c:\bin或者你放置它们的地方在你的路径中,你现在就可以直接使用它们了。

> python25
166

这里有两个解决这个问题的办法:

  • 使用 pylauncher(如果你安装的是 Python 3.3 或更新的版本,就不需要单独安装它,因为它已经包含在 Python 里了)并且可以在你的脚本中添加 shebang 行;

#! c:\[Python 2.5 的路径]\python.exe - 用于你希望用 Python 2.5 运行的脚本
#! c:\[Python 2.6 的路径]\python.exe - 用于你希望用 Python 2.6 运行的脚本

或者,你可以用 pylauncher 命令(py)来运行,而不是直接用 python 命令,这样可以指定你想要的 Python 版本;

py -2.6 – 版本 2.6
py -2 – 最新安装的 2.x 版本
py -3.4 – 版本 3.4
py -3 – 最新安装的 3.x 版本

  • 安装 virtualenv,然后创建两个虚拟环境;

virtualenv -p c:\[Python 2.5 的路径]\python.exe [你想要创建虚拟环境的路径]\[虚拟环境的名称]

virtualenv -p c:\[Python 2.6 的路径]\python.exe [你想要创建虚拟环境的路径]\[虚拟环境的名称]

例如:

virtualenv -p c:\python2.5\python.exe c:\venvs\2.5

virtualenv -p c:\python2.6\python.exe c:\venvs\2.6

然后你可以激活第一个虚拟环境,像这样使用 Python 2.5:
c:\venvs\2.5\activate
当你想切换到 Python 2.6 时,你可以这样做:

deactivate  
c:\venvs\2.6\activate
186

运行不同版本的Python其实很简单,只需要启动正确的可执行文件就行。你提到你在命令行中输入了 python 来启动一个Python实例。

在Windows系统中,这个操作会查看 %PATH% 环境变量,寻找一个可执行文件,比如批处理文件(.bat)、命令文件(.cmd)或者其他可执行文件(这由 PATHEXT 环境变量控制),看看哪个文件的名字和你输入的匹配。一旦找到合适的文件,它就会运行这个文件。

假设你安装了两个Python版本,2.5和2.6,那么你的路径中会包含这两个版本的目录,比如 PATH=c:\python\2.5;c:\python\2.6。不过,Windows在找到第一个匹配的文件后就会停止继续查找。

所以,你真正需要做的是明确地调用其中一个或两个应用程序,比如 c:\python\2.5\python.exec:\python\2.6\python.exe

另外一个方法是为各自的 python.exe 创建一个快捷方式,一个叫 python25,另一个叫 python26;这样你就可以在命令行中直接运行 python25

撰写回答