如何在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.exe
或c:\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
命令,所以这不是问题。
这是一个快速入门:
- 转到您要运行的python版本的目录
- 右键点击python.exe
- select“ 创build快捷方式 ”
- 给这个快捷方式打个电话(我用p27,p33等)
- 将该快捷方式移动到您的主目录(
C:\Users\Your name
) - 打开命令提示符并input
name_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正在执行。
只要调用正确的可执行文件
- 在Visual Studio 2013中启用WiX项目
- 未初始化的常量ActiveSupport :: Dependencies :: Mutex(NameError)
- 如何找出一个Python对象是一个string?
- 主题不适用于Android上的DialogFragment
- 如何编写尽可能与Python 3.x兼容的Python 2.x?
- 可以在SQL Server 2012上还原SQL Server 2014的备份吗?
- OnGlobalLayoutListener:弃用和兼容性
- println与Scala中的System.out.println
- 我想从Java Date中获得Year,Month,Day等,以便与Java中的Gregorian Calendardate进行比较。 这可能吗?