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

时间:2011-01-03 09:30:34

标签: python windows python-3.x compatibility python-2.x

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

如何指定我想要使用的内容?

我正在使用Windows XP SP2。

19 个答案:

答案 0 :(得分:114)

运行不同的Python副本就像启动正确的可执行文件一样简单。你提到你已经从命令行启动了一个python实例,只需输入python即可。

这在Windows下的作用是搜索%PATH%环境变量,检查可执行文件,批处理文件(.bat),命令文件(.cmd)或其他一些可运行的可执行文件,它们与给定的名称相匹配。当它找到要运行的正确文件时,就会这样做。

现在,如果你安装了两个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

答案 1 :(得分:77)

为问题添加另外两个解决方案:

  • 使用pylauncher(如果您使用的是Python 3.3或更新版本,则无需使用Python comes进行安装)并将shebang行添加到您的脚本中;

#! c:\[path to Python 2.5]\python.exe - 对于您希望使用Python 2.5运行的脚本 #! c:\[path to Python 2.6]\python.exe - 对于您希望使用Python 2.6运行的脚本

或者代替运行python命令运行pylauncher命令(py),指定您想要的Python版本;

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

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

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

例如

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

答案 2 :(得分:47)

从Python 3.3开始,有适用于Windows的官方 Python启动器http://www.python.org/dev/peps/pep-0397/)。现在,您可以使用#!pythonX在Windows上确定所需的解释器版本。查看更多详情in my another comment或阅读PEP 397。

摘要: py script.py如果缺少#!,则会启动#!或Python 2中所述的Python版本。 py -3 script.py启动Python 3。

答案 3 :(得分:43)

根据@alexander,您可以制作一组符号链接,如下所示。将它们放在路径中包含的位置,以便轻松调用它们

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

只要c:\ bin或你把它们放在哪里就在你的路径中,你现在可以去

> python25

答案 4 :(得分:6)

安装Python时,它不会覆盖其他主要版本的其他安装。因此,安装Python 2.5.x不会覆盖Python 2.6.x,尽管安装2.6.6将覆盖2.6.5。

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

C:\Python2.5\Python.exe

用于Windows上的Python 2.5和

C:\Python2.6\Python.exe

用于Windows上的Python 2.6,或

/usr/local/bin/python-2.5

/usr/local/bin/python-2.6

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

在Unix(包括Linux和OS X)上安装时,您将获得安装的通用python命令,这将是您安装的最后一个命令。这通常不是问题,因为大多数脚本将显式调用/usr/local/bin/python2.5或其他只是为了防止这种情况。但是如果你不想这样做,而你可能不这样做,你可以像这样安装它:

./configure
make
sudo make altinstall

注意“altinstall”意味着它将安装它,但它替换python命令。

在Windows上,据我所知,您没有获得全局python命令,因此这不是问题。

答案 5 :(得分:4)

这是一个快速黑客:

  1. 转到要运行的python版本的目录
  2. 右键单击 python.exe
  3. 选择“创建快捷方式
  4. 为该快捷方式指定一个名称(我使用p27,p33等)
  5. 将该快捷方式移至主目录(C:\Users\Your name
  6. 打开命令提示符并输入name_of_your_shortcut.lnk(我使用p27.lnk

答案 6 :(得分:3)

一种简单的方法是您可以使用

py -3.8 -m pip install virtualenv在这里-3.8与您的[version number]一起

安装virtualenv之后,您可以使用以下方式创建应用程序的虚拟环境

py -3.8 -m virtualenv [your env name]

然后将cd转到venv,输入activate

这将激活您喜欢的python版本。 只需更改版本号即可使用其他python版本。

答案 7 :(得分:3)

  1. 安装python

    • C:\ Python27
    • C:\ Python36
  2. 环境变量

    • PYTHON2_HOME: C:\Python27
    • PYTHON3_HOME: C:\Python36
    • Path: %PYTHON2_HOME%;%PYTHON2_HOME%\Scripts;%PYTHON3_HOME%;%PYTHON3_HOME%\Scripts;
  3. 文件重命名

    • C:\ Python27 \ python.exe→C:\ Python27 \ python2.exe
    • C:\ Python36 \ python.exe→C:\ Python36 \ python3.exe
    • python2 -m pip install package
    • python3 -m pip install package

答案 8 :(得分:2)

cp c:\ python27 \ bin \ python.exe as python2.7.exe

cp c:\ python34 \ bin \ python.exe as python3.4.exe

它们都在系统路径中,选择您要运行的版本

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.
>>>

答案 9 :(得分:1)

在Windows上运行多个版本的python的最简单方法如下所述: -

1)从 python.org/downloads 下载最新版本的 python ,方法是选择系统的相关版本。

2)运行安装程序并选择将python 3.x添加到路径以在python 3中自动设置路径(您只需单击复选框)。对于python 2打开你的python 2安装程序,选择你想要的任何首选项但只记得设置添加python.exe到路径将安装在本地硬盘上,现在只需单击下一步,然后等待安装程序完成。

3)两个安装完成后。 右键单击我的计算机 - 转到属性 - 选择高级系统设置 - 转到环境变量 - 单击系统变量下的新增并添加新的系统变量变量名称设为 PY_PYTHON ,并将此变量值设置为 3 。现在点击确定,您就应该完成。

4)现在要测试它,打开命令提示符。一旦你在那里输入 python py ,它应该打开 python3

5)现在输入 exit()退出python3。现在输入 py -2 ,它应该打开python 2。

如果这些都不起作用,请重新启动计算机,如果问题仍然存在,请卸载所有内容并重复上述步骤。

感谢。

答案 10 :(得分:0)

使用批处理文件在Windows 7上轻松高效地切换。我使用:

在环境变量对话框(C:\ Windows \ System32 \ SystemPropertiesAdvanced.exe)中,

在用户变量部分

  1. 将%pathpython%添加到路径环境变量

  2. 删除了对python pathes的任何引用

  3. 在系统变量部分

    1. 删除了对python pathes的任何引用
    2. 我为每个python安装创建了批处理文件(例如3.4 x64

      Name = SetPathPython34x64 !!! ToExecuteAsAdmin.bat ;-)只是为了记住。

      文件内容=

           Set PathPython=C:\Python36AMD64\Scripts\;C:\Python36AMD64\;C:\Tcl\bin
      
           setx PathPython %PathPython%
      

      要在版本之间切换,我在管理员模式下执行批处理文件。

      !!!!!这些更改对SUBSEQUENT命令提示符窗口OPENED有效。 !!!

      所以我对它有严格的控制。

答案 11 :(得分:0)

例如对于3.6版本类型py -3.6。  如果您同时具有32位和64位版本,则只需键入py -3.6-64py -3.6-32

答案 12 :(得分:0)

我强烈推荐pyenv-win项目。

enter image description here

感谢kirankotari的工作,现在我们有了Windows版本的pyenv。

答案 13 :(得分:0)

在使用不同的python版本时,我遇到了同样的问题,因此我使用anaconda导航器创建了不同的python开发环境,并在每种环境中使用了不同的python版本。

这是帮助文档。

https://docs.anaconda.com/anaconda/navigator/tutorials/manage-environments/

答案 14 :(得分:0)

  1. 您可以将python.exe从python 2.5文件夹复制到C:\ Windows并将其重命名为py25.exe(或您想要的任何名称)。
  2. 然后从python 2.6文件夹复制python.exe并将其粘贴到C:\ Windows文件夹中(将其重命名为py26.exe)。
    现在,您可以在命令行中编写py25来启动python 2.5和py26来启动python 2.6。
    命令的名称应与重命名的文件匹配。

答案 15 :(得分:0)

假设我们安装了python 3.7和python 3.6。

默认情况下,它们分别存储在以下文件夹中。

C:\ Users \ name \ AppData \ Local \ Programs \ Python \ Python36 C:\ Users \ name \ AppData \ Local \ Programs \ Python \ Python37

如果我们要在以上任何特定环境中使用cmd提示符安装/运行命令,请执行以下操作:

上述每个文件夹中都应该有python.exe。

因此,当我们尝试为ex运行任何文件时。 (请参见图片1)python hello.py。我们将其称为python.exe。默认情况下,它选择较低版本的文件。 (在这种情况下,它将在python 3.6中使用)

image

所以如果我们想使用python3.7运行。只需更改.exe文件名。对于前。如果我更改为python37.exe,并且想使用python3.7运行hello.py

我将使用python37 hello.py。或者如果我想默认使用python3.7,我会将python3.6文件夹中的python.exe文件名更改为其他名称。这样,当我仅使用python hello.py

时,它将每次使用python3.7

答案 16 :(得分:-1)

使用Rapid Environment Editor,您可以将所需Python安装的目录推送到顶部。例如,要从c:\ Python27目录启动python,请确保c:\ Python27目录位于Path环境变量中c:\ Python36目录之前或之上。根据我的经验,在Path环境中找到的第一个python可执行文件正在执行。例如,我在Python27上安装了MSYS2,因为我已经将C:\ MSYS2添加到C:\ Python36之前的路径,所以正在执行C:\ MSYS2 ....文件夹中的python.exe。 / p>

答案 17 :(得分:-1)

我认为这个答案可能对其他拥有多个python版本的人有所帮助,并希望使用pipenv创建虚拟环境。

  1. 导航到项目目录,然后运行py -[python version] pip install pipenv,例如:py -3.6 pip install pipenv
  2. 运行pipenv --python [version]以使用所需的python版本创建虚拟环境。示例:pipenv --python 3.6
  3. 运行pipenv shell激活您的虚拟环境。

答案 18 :(得分:-4)

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

即可