133

我在 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 的安装程序。我错过了什么还是我必须从源代码安装它?

4

11 回答 11

142

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

于 2010-09-06T15:44:51.983 回答
91

显然(在 OS X 上遇到过相关的 64 位和 32 位问题)Windows 安装程序中有一个错误。我偶然发现了这个解决方法,这可能会有所帮助 - 基本上,您创建自己的注册表值HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Python\PythonCore\2.6\InstallPath并从HKEY_LOCAL_MACHINE\SOFTWARE\Python\PythonCore\2.6\InstallPath. 有关详细信息,请参阅下面的答案。

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

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

于 2010-09-06T15:42:13.843 回答
69

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

下载 32 位版本 HKEY_LOCAL_MACHINE|HKEY_CURRENT_USER\SOFTWARE\wow6432node\

下载 64 位版本 HKEY_LOCAL_MACHINE|HKEY_CURRENT_USER\SOFTWARE\

于 2012-02-03T16:27:03.880 回答
28

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

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

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

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

于 2012-10-09T05:17:44.207 回答
9

创建一个名为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"

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

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

于 2012-10-26T13:36:12.640 回答
9

register.py从此gist获取文件。把它保存在你的C盘或D盘,去CMD运行它:

'python register.py'

然后你就可以安装它了。

于 2013-01-26T04:47:58.450 回答
3

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

在撰写本文时,由于distutils 安装程序兼容性问题,.exe 安装程序不支持 Windows 的 64 位版本的 Python 。

于 2011-07-15T13:17:47.463 回答
1

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

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

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

于 2012-02-29T02:42:26.077 回答
1

我尝试了上述方法并将注册表项添加到 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 安装路径。

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

于 2014-10-27T16:49:11.860 回答
0

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

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

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

于 2015-08-14T12:29:51.253 回答
-2

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

于 2012-07-21T17:07:42.350 回答