我有 Windows Vista 64。
我有一些项目需要 Python 2.7.3 64 位,而其他项目需要 Python 2.7.3 32 位(因为一些扩展在 64 位中不起作用)。
如何防止 Python 2.7.3 MSI 安装程序(32 或 64 机器人)删除其他版本。
并排为我使用 Python 2.7.2 没有问题。
原文由 Ruediger Jungbeck 发布,翻译遵循 CC BY-SA 4.0 许可协议
我有 Windows Vista 64。
我有一些项目需要 Python 2.7.3 64 位,而其他项目需要 Python 2.7.3 32 位(因为一些扩展在 64 位中不起作用)。
如何防止 Python 2.7.3 MSI 安装程序(32 或 64 机器人)删除其他版本。
并排为我使用 Python 2.7.2 没有问题。
原文由 Ruediger Jungbeck 发布,翻译遵循 CC BY-SA 4.0 许可协议
您通常可以并排安装多个 Python 版本。在 Windows 中安装时,除了文件安装外,注册表也会更新,以便任何后续的包/工具安装都可以枚举当前 m/c 中的所有 Python 安装。如果安装的版本相同但位数不同,只会出现问题。因为,注册表路径 *SOFTWARE\Python\Pythoncore* 不区分位数和错误修复,如果您安装具有不同错误修复或不同位数的相同版本,您最终会覆盖 InstallPath 和 PythonPath 。
解决方案
更新
正如 Ruediger Jungbeck 指出他可以看到两个不同的注册表项,我突然想起了 Vista 后的一个重要变化。在 64 位系统上,为了能够从 32 位和 64 位应用程序访问注册表项,Windows 在重要节点处拆分了注册表。对于 64 位应用程序,它是本机注册表路径,但对于 32 位应用程序,它是 WoW6432Node。所以当运行 32 位版本的 Python\Tools\extension 时,它只会看到 Wow6432Node。 64 位应用程序只能看到本机节点。有 API 可以访问交叉位节点,但这超出了这个问题的范围。因此总而言之,Windows 通过拆分节点智能地处理 32 位和 64 位应用程序,这将允许 32 位扩展透明地访问 32 位 Python 安装。
原文由 Abhijit 发布,翻译遵循 CC BY-SA 3.0 许可协议
2 回答5.1k 阅读✓ 已解决
2 回答1.1k 阅读✓ 已解决
4 回答1.4k 阅读✓ 已解决
3 回答1.3k 阅读✓ 已解决
3 回答1.2k 阅读✓ 已解决
1 回答1.7k 阅读✓ 已解决
1 回答1.2k 阅读✓ 已解决
这似乎在 Windows 7 64 位上对我有用。选择一个版本作为您的默认安装,例如 64 位,然后先安装它。在做任何其他事情之前安装其他版本。
指定不同的安装目录,并在
Customize Python 2.7.3
屏幕中选择Register Extensions
并选择Entire feature will be unavailable
。