系统路径中的多个Python安装
我在我的Windows 7 64位电脑上安装了两个Python版本,一个是32位的Python 2.7,另一个是64位的Python 2.7。每个版本都是为了特定的应用程序需要的。目前,我的系统路径里只有32位的Python安装。
现在,如果我在Windows命令提示符里输入python
,它会打开32位的Python 2.7。我希望能够输入python32
来启动32位版本,或者输入python64
来启动64位版本。
我知道我可以把每个python.exe
文件分别重命名为python32.exe
和python64.exe
,但这样会导致一些特定应用程序找不到它们需要的路径。有没有办法让每个python.exe
保持原名,但在命令提示符中用不同的命令来启动呢?
3 个回答
我使用的是ixe013的连接方法。不过,我遇到的一个问题是,enthought的enpkg安装程序无法“识别”这个符号连接。我记不清具体细节了,但它破坏了符号链接,然后声称安装目录是空的……
所以,如果你在使用ixe013的方法和enthought一起更新时,我建议你按照以下步骤操作:
先删除连接:junction -d c:\python
把c:\python.2.7.32bits重命名为c:\python
运行enpkg,然后再回去:
把c:\python重命名回c:\python.2.7.32bits
最后,执行:junction -d c:\python & junction c:\python c:\python.2.7.32bits
下面是我在系统上处理多个版本Python的方法。这种方法甚至可以和Google在depot_tools中捆绑的Python兼容。
- 下载并安装任何版本的Python,放在一个通用的文件夹里,比如默认的
C:\Python
。 - 把这个文件夹重命名为一个具体的名字,比如
c:\Python.2.7.32bits
。 - 下载并安装你需要的其他版本,使用同样的安装文件夹,每次都重命名。
这样做是为了确保注册表设置正确,因为有些应用程序需要这些设置。
接下来,下载Junction并把它解压到你的路径中的某个地方。要在不同的Python版本之间切换,可以使用这个命令:
junction -d c:\python & junction c:\python c:\python.2.7.32bits
在一个批处理文件中,它看起来是这样的:
@echo off
junction -d c:\python & junction c:\python c:\python.%1
echo Now using
python -V
where python
你可以把它放在你的路径中,并用以下命令调用它:
switch-python 2.7.32bits
你可以为每个版本添加批处理文件
python32.bat
@C:\python32\python.exe %*
python64.bat
@C:\python64\python.exe %*