【问题标题】:Installing SetupTools on 64-bit Windows在 64 位 Windows 上安装 SetupTools
【发布时间】:2011-04-08 19:59:55
【问题描述】:

我在 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 位 SetupTools 安装程序不存在,所以我接受了解决方法,完全知道这是一个 hack。
  • @JohnRobertson 那么最好的答案是什么?

标签: python setuptools easy-install


【解决方案1】:

问题:您有 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 安装它们。

【讨论】:

  • 非官方安装者的绝佳链接!
  • 谢谢。用 amd64 解决了我的 Python 2.7 问题。
  • 反之亦然(2.7 32 和 setuptools 64)stackoverflow.com/a/10966396/404385
  • 那个链接是纯金的!
  • 不知道怎么安装whl文件的可以用pip安装,比如pip install xyz.whl
【解决方案2】:

这是另一个帖子/线程的链接。我能够运行这个脚本来自动注册 Python 2.7。 (确保从您要注册的 Python 2.x .exe 运行它!)

要注册 Python 3.x,我必须修改 print 语法并导入 winreg(而不是 _winreg),然后运行 ​​Python 3 .exe

https://stackoverflow.com/a/29633714/3568893

【讨论】:

    【解决方案3】:

    显然(在 OS X 上遇到过相关的 64 位和 32 位问题)有一个bug in the Windows installer。我偶然发现了this workaround,这可能会有所帮助——基本上,您创建自己的注册表值HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Python\PythonCore\2.6\InstallPath 并从HKEY_LOCAL_MACHINE\SOFTWARE\Python\PythonCore\2.6\InstallPath 复制InstallPath 值。有关详细信息,请参阅下面的答案。

    如果您这样做,请注意 setuptools 只能安装 32 位库

    注意:以下回复提供了更多详细信息,因此请也阅读它们。

    【讨论】:

    • 也适用于安装 PIL (PIL-1.1.7.win32-py2.7)。
    【解决方案4】:

    我尝试了上述方法并将注册表项添加到 LOCALMACHINE 并没有完成工作。所以如果你仍然卡住,试试这个。

    Windows 注册表编辑器 5.00 版

    [HKEY_CURRENT_USER\SOFTWARE\Python]

    [HKEY_CURRENT_USER\SOFTWARE\Python\PythonCore]

    [HKEY_CURRENT_USER\SOFTWARE\Python\PythonCore\2.7]

    [HKEY_CURRENT_USER\SOFTWARE\Python\PythonCore\2.7\Help]

    [HKEY_CURRENT_USER\SOFTWARE\Python\PythonCore\2.7\Help\Main Python 文档] @="C:\Python27\Doc\python272.chm"

    [HKEY_CURRENT_USER\SOFTWARE\Python\PythonCore\2.7\InstallPath] @="C:\Python27\"

    [HKEY_CURRENT_USER\SOFTWARE\Python\PythonCore\2.7\InstallPath\InstallGroup] @="Python 2.7"

    [HKEY_CURRENT_USER\SOFTWARE\Python\PythonCore\2.7\Modules]

    [HKEY_CURRENT_USER\SOFTWARE\Python\PythonCore\2.7\PythonPath] @="C:\Python27\Lib;C:\Python27\DLLs;C:\Python27\Lib\lib-tk"

    将以上内容复制粘贴到记事本中,并保存为 Python27.reg 。现在运行/合并上述答案中提到的文件。 (确保根据您的安装更正 Python 安装路径。

    它只是对当前用户执行上述答案对本地计算机的建议。

    【讨论】:

      【解决方案5】:

      我创建了一个注册表 (.reg) 文件,它会自动为您更改注册表。如果安装在“C:\Python27”中就可以了:

      Download 32-bit versionHKEY_LOCAL_MACHINE|HKEY_CURRENT_USER\SOFTWARE\wow6432node\

      Download 64-bit versionHKEY_LOCAL_MACHINE|HKEY_CURRENT_USER\SOFTWARE\

      【讨论】:

      • 您的 REG 文件对我有用,但我遇到了相反的问题,所以我不得不从所有键名中删除“\Wow6432Node”。
      • 我想我可以发布一个 32 位的链接.. :P
      • 很棒的补丁文件!伟大的!谢谢你!
      • @BennyNeugebauer 没问题。
      • @EvanCaldwell 没问题!
      【解决方案6】:

      要允许 Windows 安装程序在 Windows 7 中找到已安装的 Python 目录,或者,更改要安装安装程序的 Python 安装,请将安装路径添加到 InstallPath注册表项的 (默认) 值:

      HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Python\PythonCore\2.X\InstallPath

      其中“X”是 Python 版本(即 2.5、2.6 或 2.7)。

      【讨论】:

        【解决方案7】:

        this gist 获取文件register.py。保存到你的C盘或者D盘,到CMD运行:

        'python register.py'
        

        然后你就可以安装它了。

        【讨论】:

        • 这是最简单的解决方案。谢谢!我在尝试安装 wxPython2.8-win32-unicode-2.8.12.1-py27 时遇到了这个问题,它总是抱怨 python 未注册
        【解决方案8】:

        创建一个名为python2.7.reg 的文件(注册表文件)并将此内容放入其中:

        Windows Registry Editor Version 5.00
        
        [HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Python\PythonCore\2.7]
        
        [HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Python\PythonCore\2.7\Help]
        
        [HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Python\PythonCore\2.7\Help\MainPythonDocumentation]
        @="C:\\Python27\\Doc\\python26.chm"
        
        [HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Python\PythonCore\2.7\InstallPath]
        @="C:\\Python27\\"
        
        [HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Python\PythonCore\2.7\InstallPath\InstallGroup]
        @="Python 2.7"
        
        [HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Python\PythonCore\2.7\Modules]
        
        [HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Python\PythonCore\2.7\PythonPath]
        @="C:\\Python27\\Lib;C:\\Python27\\DLLs;C:\\Python27\\Lib\\lib-tk"
        

        并确保每条路径都是正确的!

        然后运行(合并)它并完成:)

        【讨论】:

        • 谢谢!我可以确认它适用于 python 2.76 和 h5py 设置。也许只是将文档路径更新为 python276.chm 以获得良好的顺序:)
        【解决方案9】:

        是的,你是对的,问题出在 64 位 Python 和 32 位 setuptools 安装程序上。

        在 Windows 上安装 64 位 setuptools 的最佳方法是将ez_setup.py 下载到 C:\Python27\Scripts 并运行它。它将为 setuptools 下载适当的 64 位 .egg 文件并为您安装。

        来源:http://pypi.python.org/pypi/setuptools

        附:我建议不要使用第 3 方 64 位 .exe setuptools 安装程序或操作注册表

        【讨论】:

        • 无法相信这个解决方案如此快速和简单。我花了几个小时停留在其他途径上。
        • 我认为最好和最安全的解决方案!
        【解决方案10】:

        您可以在这里找到很多库的 64 位安装程序:http://www.lfd.uci.edu/~gohlke/pythonlibs/

        【讨论】:

          【解决方案11】:

          对于 Windows 上的 64 位 Python,下载 ez_setup.py 并运行它;它将下载适当的 .egg 文件并为您安装。

          由于distutils installer compatibility issue,.exe 安装程序不支持 Windows 的 64 位版本的 Python。

          【讨论】:

          • 这个确实对我有用! Joe DF 的另一个脚本对我不起作用
          猜你喜欢
          • 2017-06-08
          • 2015-11-16
          • 1970-01-01
          • 2012-07-02
          • 2011-01-26
          • 1970-01-01
          • 1970-01-01
          • 2012-04-26
          • 2015-02-28
          相关资源
          最近更新 更多