热门标签:
Q:

在64位Windows上安装SetupTools

我在Windows7 64位上运行Python2.7,当我运行setuptools的安装程序时,它告诉我没有安装Python2.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的任何安装程序。 我错过了什么,还是我必须从源代码安装这个?

原网址
A:

问题:您有64位Python和32位安装程序。 这会给扩展模块带来问题。

安装程序找不到Python的原因是windows7的透明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位安装程序(见下文)
  • 上面的答案是什么:copyHKLM\SOFTWARE\PythontoHKLM\SOFTWARE\wow6432node\Python,但是这个导致二进制分布出现问题,因为64位Python无法加载32位编译的模块(不要这样做!)
  • 使用setuptools而不是distutils安装程序(easy_install或pip)安装纯Python模块

例如,对于setuptools本身,您不能为64位Python使用32位安装程序,因为它包含二进制文件。 但是有一个64位安装程序在http://www.lfd.uci.edu/~gohlke/pythonlibs/(也有许多其他模块的安装程序)。 如今,PyPi上的许多软件包都有二进制发行版,因此您可以通过pip安装它们。

所有回答

共 10 条

author avatar

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

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

注意:下面的回复提供了更多细节,所以请阅读它们。

author avatar

我做了一个注册表(。reg)将自动为您更改注册表的文件。 它的工作原理,如果它安装在"C:\Python27":

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

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

author avatar

是的,你是正确的,问题是64位Python和setuptools的32位安装程序。

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

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

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

author avatar

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

确保每一条路都是正确的!

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

author avatar

获取文件register.pyfrom这个要点。 将其保存在C盘或D盘上,转到CMD运行它:

'python register.py'

然后你就可以安装它了。

author avatar

适用于Windows上的64位Python下载ez_setup.py并运行它;它会下载相应的。蛋文件并为您安装。

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

author avatar

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

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

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

author avatar

我尝试了上述方法,并将注册表项添加到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] @="Python2.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安装的路径。

它简单地做了,上面的答案对本地机器的建议,给当前用户。

author avatar

这里是一个链接到另一个帖子/线程。 我能够运行此脚本来自动注册Python2.7。 (确保从Python2运行它。x.exe你要注册!)

注册Python3。x我不得不修改print语法并导入winreg(而不是_winreg),然后运行Python3.exe

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

author avatar

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

相似问题