python - 在 64 位 Windows 上安装 SetupTools

标签 python setuptools easy-install

我在 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/

相关文章:

python - 类与列表(访问器编码风格)

Python:可以在 "elif"之前评估 "if"吗?

python - 使用 setuptools 通过 Python 库安装的数据文件位置

python - 在 Python 中安装包时 pip install tr​​aceback 错误

python - 在 RHEL 上安装适用于 Python 2.7 的 lxml

Python - 如何将 BMP 转换为 JPEG 或 PDF?这样文件大小就不是 50MB 而是更小了?

python - 如何使用 unittest 正确编写测试?

python - setuptools-scm:当前版本而不是下一版本

python - 用于 python 3.5 的 lxml

python - easy_install ReviewBoard [Errno 104] 连接被同行重置