在64位Windows上安装SetupTools

我在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的任何安装程序。 我错过了什么,或者我必须从源代码安装?

显然(在OS X上遇到了相关的64位和32位问题) ,Windows安装程序中存在一个错误 。 我偶然发现这个解决方法 ,这可能会有所帮助 – 基本上,你创build自己的registry值HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Python\PythonCore\2.6\InstallPath并从HKEY_LOCAL_MACHINE\SOFTWARE\Python\PythonCore\2.6\InstallPath复制InstallPath值。 请参阅下面的答案了解更多详情。

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

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

问题:你有64位的Python和一个32位的安装程序。 这将导致扩展模块出现问题。

安装程序没有findPython的原因是来自Windows 7的透明32位模拟。64位和32位程序将写入Windowsregistry的不同部分。

64位: HKLM|HKCU\SOFTWARE\

32位: HKLM|HKCU\SOFTWARE\wow6432node\

这意味着64位的Python安装程序写入HKLM\SOFTWARE\Python ,但是32位的setuptools安装程序会查看HKLM\SOFTWARE\wow6432node\Python (这是由Windows自动处理的,程序不会注意到)。 这是预期的行为,而不是一个错误。

通常,你有这些select:

  • “干净”的方式:如果您必须使用32位模块或扩展名,则使用32位Python
  • 另一种“干净”的方式:只使用64位安装程序时,使用64位Python(见下文)
  • 上面的答案是什么:将HKLM\SOFTWARE\Python复制到HKLM\SOFTWARE\wow6432node\Python ,但这导致二进制分发问题,因为64位Python无法加载32位编译模块(不要这样做! )
  • 使用setuptools而不是distutils安装程序(easy_install或pip)安装纯Python模块,

例如,对于setuptools本身,您不能使用64位Python的32位安装程序,因为它包含二进制文件。 但在http://www.lfd.uci.edu/~gohlke/pythonlibs/有一个64位的安装程序(也有许多其他模块的安装程序); 。 作为一个经验法则:使用distributepip来安装纯python模块(参见这里 ),并find一个二进制包,它与您已安装的Python体系结构相匹配。

我做了一个registry(.reg)文件,将自动更改为您的registry。 它可以在“C:\ Python27”中安装:

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

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

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

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

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

PS我build议不要使用第三方64位.exe setuptools安装程序或操作registry

创build一个名为python2.7.reg (registry文件)的文件,并将这个内容放入它:

 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" 

并确保每条路线是正确的!

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

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

 'python register.py' 

那么你将能够安装它。

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

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

要允许Windows安装程序在Windows 7中查找已安装的Python目录,或者更改要安装安装程序的Python安装,请将已安装的path添加到InstallPathregistry项的(默认)值中:

HKEY_LOCAL_MACHINE \ SOFTWARE \ Wow6432Node \ Python的\ PythonCore \ 2.X \安装path

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

我尝试了上面的,并将registry项添加到LOCALMACHINE没有完成工作。 所以如果你仍然坚持,试试这个。

Windowsregistry编辑器版本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 \帮助]

[HKEY_CURRENT_USER \ SOFTWARE \ Python \ PythonCore \ 2.7 \ Help \ Main Python Documentation] @ =“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 \模块]

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

复制粘贴上面的记事本,并保存为Python27.reg。 现在运行/合并上面的答案中提到的文件。 (确保Python安装的path按照您的安装进行了更正。

它只是做了什么,上面的答案build议本地机器,当前用户。

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

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

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

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