问题:在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的任何安装程序。我错过了什么吗,还是必须从源代码安装它?
回答 0
显然(在OS X上面临相关的64位和32位问题),Windows安装程序中存在一个错误。我偶然发现了这种解决方法,它可能会有所帮助-基本上,您可以创建自己的注册表值,HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Python\PythonCore\2.6\InstallPath
然后从中复制InstallPath值HKEY_LOCAL_MACHINE\SOFTWARE\Python\PythonCore\2.6\InstallPath
。有关更多详细信息,请参见下面的答案。
如果执行此操作,请注意setuptools 只能安装32位库。
注意:以下回复提供了更多详细信息,因此也请阅读它们。
回答 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安装它们。
回答 2
我做了一个注册表(.reg)文件,它将自动为您更改注册表。如果安装在“ C:\ Python27”中,它将起作用:
下载32位版本 HKEY_LOCAL_MACHINE|HKEY_CURRENT_USER\SOFTWARE\wow6432node\
下载64位版本 HKEY_LOCAL_MACHINE|HKEY_CURRENT_USER\SOFTWARE\
回答 3
是的,您是对的,问题出在setuptools的64位Python和32位安装程序上。
在Windows上安装64位setuptools的最佳方法是将ez_setup.py下载到C:\ Python27 \ Scripts并运行它。它将下载用于setuptools的适当的64位.egg文件并为您安装。
资料来源:http : //pypi.python.org/pypi/setuptools
PS我建议您不要使用第三方的64位.exe setuptools安装程序或操纵注册表
回答 4
创建一个名为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"
并确保每条路径都是正确的!
然后运行(合并)并完成:)
回答 5
回答 6
对于Windows上的64位Python,请下载ez_setup.py并运行它;它将下载适当的.egg文件并为您安装。
由于distutils安装程序兼容性问题,在撰写本文时,.exe安装程序不支持Windows的64位版本的Python 。
回答 7
要允许Windows安装程序在Windows 7或Windows 7中找到已安装的Python目录,请更改要将安装程序安装到的Python安装,然后将已安装的路径添加到InstallPath注册表项的(默认)值中:
HKEY_LOCAL_MACHINE \ SOFTWARE \ Wow6432Node \ Python \ PythonCore \ 2.X \ InstallPath
其中“ X ”是Python版本(即2.5、2.6或2.7)。
回答 8
我尝试了上述操作,但将注册表项添加到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安装路径。
上面的答案对本地用户的建议对当前用户来说确实很简单。
回答 9
这是另一个帖子/主题的链接。我能够运行此脚本来自动注册python 2.7。(确保从.exe
要注册的Python 2.x运行它!)
要注册Python 3.x,我必须修改print
语法并导入winreg
(而不是_winreg
),然后运行Python 3 .exe
。
回答 10
您可以在此处找到许多库的64位安装程序:http : //www.lfd.uci.edu/~gohlke/pythonlibs/