2012-04-17 161 views
27

我具有Windows Vista 64如何安装Python 2.7.3 32位和64位Windows上并排

我需要的Python 2.7.3 64位的一些项目和其他需要的Python 2.7.3 32位(因为一些扩展在64位中不起作用)。

如何防止Python 2.7.3 MSI安装程序(32或64机器人)删除其他版本。

并排使用Python 2.7.2为我工作没有问题。

+2

它看起来像具体到2.7.3 – 2012-09-16 15:39:03

+0

作为工作你周围可以只使用一个虚拟机,直到他们解决这个问题的安装错误,我有同样的问题 – pyCthon 2012-09-16 16:44:28

回答

26

这似乎在Windows 7 64位上适用于我。选择一个版本作为您的默认安装,例如64位,并先安装它。在做其他事情之前安装其他版本。

指定不同的安装目录,并在Customize Python 2.7.3屏幕选择Register Extensions和选择Entire feature will be unavailable

+2

这很好。非常感谢Nicola。我相信“注册扩展和选择整个功能将不可用”是非常关键的,因为它决定哪些将是您的默认python。 – keithxm23 2013-11-18 17:52:08

3

通常可以并排安装多个Python版本。在Windows中安装时,除了文件安装之外,还会更新注册表,以便任何后续的软件包/工具安装都可以枚举当前m/c中的所有Python安装。 如果安装是针对相同版本,但是位数不同,则只会出现问题。 作为,因为注册表路径 SOFTWARE \ Python的\ Pythoncore \不与位元和错误修复区别,你最终会覆盖在 安装路径PYTHONPATH如果你安装相同的版本不同的漏洞修复或不同的位数。

  • 安装用于不同位数的两个不同版本。
  • 准备一个脚本以在每次要在位数之间切换时更新注册表项。我偶然发现了effbot中的一个简单的类似脚本,它可以完成Job。

更新

由于Ruediger Jungbeck指出,他可以看到两个不同的注册表项,我突然想起一个重要的改变后Vista系统。在64位系统上,为了能够从32位和64位应用程序访问注册表项,Windows在重要节点处拆分了注册表。对于64位应用程序,它的本地注册表路径,但对于32位应用程序,它是WoW6432Node。所以当运行一个32位版本的Python \ Tools \扩展时,它只会看到Wow6432Node。 64位应用程序将只能看到本地节点。有API可以访问跨位字节点,但这不在此问题的范围之内。因此,总而言之,Windows通过分割允许32位扩展来透明访问32位Python安装的节点,智能地处理32位和64位应用程序。

+0

我可以找到2 differen t值。一个在HKEY_LOCAL_MACHINE \ SOFTWARE \ Python \ PythonCore \ 2.7中指向64位版本和一个指向32位版本的HKEY_LOCAL_MACHINE \ SOFTWARE \ Wow6432Node \ Python \ PythonCore \ 2.7,所以我期望每个位都能找到它是Python。但为什么安装程序看到两者? – 2012-04-17 10:25:46

+0

啊哈....我完全忘记了...我会更新我的回答 – Abhijit 2012-04-17 11:01:30

+0

我已经看到您的更新,但这并不影响我的问题。我想同时安装两个位(在同一个系统上) – 2012-04-27 17:42:50

1

在安装2nd python时,对于注册扩展选择“整个功能将不可用”选项。 的Python 64安装路径将在注册表 “HKLM:SOFTWARE \的Python \ PythonCore \ 2.7 \安装路径”

Python的64位PYTHONPATH将在 “HKLM:SOFTWARE \的Python \ PythonCore \ 2。7 \ PYTHONPATH “

的Python 32安装路径将在注册表 ”HKLM:SOFTWARE \ Wow6432Node \的Python \ PythonCore \ 2.7 \安装路径“

Python的32位PYTHONPATH将在 ” HKLM:SOFTWARE \ Wow6432Node \ Python的\ PythonCore \ 2.7 \ PYTHONPATH”

Customize Python with disabling extions

相关问题