我在 Windows 7 64 位上运行 Python 2.7,当我运行 setuptools 的安装程序时,它告诉我没有安装 Python 2.7。具体报错信息为:
`Python Version 2.7 required which was not found in the registry`
我安装的 Python 版本是:
`Python 2.7 (r27:82525, Jul 4 2010, 07:43:08) [MSC v.1500 64 bit (AMD64)] on win32`
我正在查看 setuptools 站点,它没有提到任何 64 位 Windows 的安装程序。我错过了什么还是必须从源代码安装?
最佳答案
问题:您有 64 位 Python 和 32 位安装程序。这将导致扩展模块出现问题。
安装程序找不到 Python 的原因是 Windows 7 的透明 32 位仿真。64 位和 32 位程序将写入 Windows 注册表的不同部分。
64 位:HKLM|HKCU\SOFTWARE\
32 位:HKLM|HKCU\SOFTWARE\wow6432node\
.
这意味着 64 位 Python 安装程序写入 HKLM\SOFTWARE\Python
,但 32 位 setuptools 安装程序查看 HKLM\SOFTWARE\wow6432node\Python
(这是由 Windows 自动处理的,程序不会注意到)。这是预期行为,而不是错误。
通常,您有以下选择:
- “干净”的方式:如果必须使用 32 位模块或扩展,请使用 32 位 Python
- 另一种“干净”的方式:在使用 64 位 Python 时仅使用 64 位安装程序(见下文)
- 上面的答案建议:将
HKLM\SOFTWARE\Python
复制到HKLM\SOFTWARE\wow6432node\Python
,但这会导致问题使用二进制发行版,因为 64 位 Python 无法加载 32 位编译模块(不要这样做!) - 使用 setuptools 而不是 distutils 安装程序(easy_install 或 pip)安装纯 Python 模块
例如,对于 setuptools 本身,您不能将 32 位安装程序用于 64 位 Python,因为它包含二进制文件。 但是 http://www.lfd.uci.edu/~gohlke/pythonlibs/ 有一个 64 位安装程序(也有许多其他模块的安装程序)。现在,PyPi 上的很多包都有二进制发行版,所以你可以通过 pip 安装它们。
关于python - 在 64 位 Windows 上安装 SetupTools,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3652625/