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

我的机器上安装了两个版本的Python(版本2.6和2.5)。 我想为一个项目运行2.6,另一个运行2.5。

我怎样才能指定我想要使用?

我正在使用Windows XP SP2。

运行Python的另一个副本与启动正确的可执行文件一样简单。 您提到您已经从命令行启动了一个python实例,只需键入python

在Windows下,这样做是为了浏览%PATH%环境variables,检查可执行文件,batch file(.bat),命令文件(.cmd)或其他可执行文件,以匹配给定的名称。 当它find正确的文件运行,它就这样做了。

现在,如果你已经安装了两个python版本2.5和2.6,那么path中将有两个目录,就像PATH=c:\python\2.5;c:\python\2.6但是Windows会停止检查path它find一个匹配。

你真正需要做的是显式调用一个或两个应用程序,如c:\python\2.5\python.exec:\python\2.6\python.exe

另一种方法是创build一个快捷方式到相应的python.exe调用其中之一python25和其他python26; 你可以简单地在你的命令行上运行python25

为问题增加两个解决scheme:

  • 安装pylauncher并将shebang行添加到脚本中;

#! c:\[path to Python 2.5]\python.exe #! c:\[path to Python 2.5]\python.exe – 用于你想用Python 2.5运行的脚本
#! c:\[path to Python 2.6]\python.exe #! c:\[path to Python 2.6]\python.exe – 用于你想用Python 2.6运行的脚本

  • 安装virtualenv并创build两个virtualenvs;

virtualenv -pc:\[path to Python 2.5]\python.exe [path where you want to have virtualenv using Python 2.5 created]\[name of virtualenv]

virtualenv -pc:\[path to Python 2.6]\python.exe [path where you want to have virtualenv using Python 2.6 created]\[name of virtualenv]

例如

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

virtualenv -pc:\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 

从Python 3.3开始, Windows有官方的Python启动器http://www.python.org/dev/peps/pep-0397/ )。 现在,您可以使用#!pythonX在Windows上确定所需的解释器版本。 在我的另一个评论中看到更多的细节,或阅读PEP 397。

总结: py script.py启动了在#!声明的Python版本#! 或Python 2如果#! 不见了。 py -3 script.py 3 py -3 script.py启动Python 3。

根据@alexander,你可以制作一系列象下面这样的符号链接。 把它们放在你的path中的某个地方,这样可以很容易地调用它们

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

只要c:\ bin或者你把它们放在你的路上,你现在就可以走了

 > python25 

当你安装Python时,它不会覆盖其他主要版本的其他安装。 所以安装Python 2.5.x将不会覆盖Python 2.6.x,尽pipe安装2.6.6会覆盖2.6.5。

所以你可以安装它。 然后你调用你想要的Python版本。 例如:

 C:\Python2.5\Python.exe 

对于Windows 2.5和Python 2.5

 C:\Python2.6\Python.exe 

在Windows上的Python 2.6,或

 /usr/local/bin/python-2.5 

要么

 /usr/local/bin/python-2.6 

Windows Unix上(包括Linux和OS X)。

当你在Unix(包括Linux和OS X)上安装时,你会得到一个通用的python命令,这将是你安装的最后一个。 这大多不是问题,因为大多数脚本都会明确地调用/usr/local/bin/python2.5或者其他东西来防止这种情况发生。 但是,如果你不想这样做,你可能不能这样安装它:

 ./configure make sudo make altinstall 

请注意,“altinstall”意味着它将安装它,但它不会替代python命令。

在Windows上,我并不知道全局的python命令,所以这不是问题。

这是一个快速入门:

  1. 转到您要运行的python版本的目录
  2. 右键点击python.exe
  3. select“ 创build快捷方式
  4. 给这个快捷方式打个电话(我用p27,p33等)
  5. 将该快捷方式移动到您的主目录( C:\Users\Your name
  6. 打开命令提示符并inputname_of_your_shortcut.lnk (我使用p27.lnk

cp c:\ python27 \ bin \ python.exe作为python2.7.exe

cp c:\ python34 \ bin \ python.exe作为python3.4.exe

他们都在系统path中,select你想运行的版本

 C:\Users\username>python2.7 Python 2.7.8 (default, Jun 30 2014, 16:03:49) [MSC v.1500 32 bit (Intel)] on win 32 Type "help", "copyright", "credits" or "license" for more information. >>> C:\Users\username>python3.4 Python 3.4.1 (v3.4.1:c0e311e010fc, May 18 2014, 10:38:22) [MSC v.1600 32 bit Intel)] on win32 Type "help", "copyright", "credits" or "license" for more information. >>> 

使用快速环境编辑器,您可以推到所需的Python安装目录。 例如,要从c:\ Python27目录启动python,请确保c:\ Python27目录位于Path环境variables的c:\ Python36目录之前或之上。 根据我的经验,在Path环境中find的第一个python可执行文件正在执行。 例如,我使用Python27安装了MSYS2,并且由于我已经将C:\ MSYS2添加到C:\ Python36之前的path,因此C:\ MSYS2 ….文件夹中的python.exe正在执行。

只要调用正确的可执行文件