我在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 :(得分: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自动处理,程序不会注意到)。这是预期的行为而不是错误。
通常,您有以下选择:
HKLM\SOFTWARE\Python
复制到HKLM\SOFTWARE\wow6432node\Python
,但将导致二进制分发问题,因为64位Python无法加载32位已编译的模块(不要这样做!)例如,对于setuptools本身,您不能将32位安装程序用于64位Python,因为它包含二进制文件。 但http://www.lfd.uci.edu/~gohlke/pythonlibs/有一个64位安装程序(其他模块也有许多安装程序)。如今,PyPi上的许多软件包都有二进制发行版,所以你可以通过pip安装它们。
答案 1 :(得分:91)
显然(在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位库。
注意:以下回复提供了更多详细信息,因此请仔细阅读。
答案 2 :(得分:69)
我制作了一个注册表(.reg)文件,它会自动为您更改注册表。如果它安装在“C:\ Python27”中,它可以工作:
Download 32-bit version HKEY_LOCAL_MACHINE|HKEY_CURRENT_USER\SOFTWARE\wow6432node\
Download 64-bit version HKEY_LOCAL_MACHINE|HKEY_CURRENT_USER\SOFTWARE\
答案 3 :(得分:28)
是的,你是对的,问题在于64位Python和32位安装程序的setuptools。
在Windows上安装64位安装工具的最佳方法是将ez_setup.py下载到C:\ Python27 \ Scripts并运行它。它将为setuptools下载适当的64位.egg文件并为您安装。
来源:http://pypi.python.org/pypi/setuptools
P.S。我建议不要使用第三方64位.exe setuptools安装程序或操作注册表
答案 4 :(得分: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"
确保每条路径都正确!
然后运行(合并)并完成:)
答案 5 :(得分:9)
答案 6 :(得分:3)
对于Windows上的64位Python,请下载ez_setup.py并运行它;它将下载相应的.egg文件并为您安装。
在撰写本文时,由于distutils installer compatibility issue,.exe安装程序不支持64位版本的Python for Windows。
答案 7 :(得分:1)
要允许Windows安装程序在 Windows 7 中找到已安装的Python目录,或者更改要安装安装程序的Python安装,请将已安装的路径添加到 InstallPath 中注册表项的(默认)值:
HKEY_LOCAL_MACHINE \ SOFTWARE \ Wow6432Node \的Python \ PythonCore \ 2.X \安装路径
“ X ”是Python版本(即2.5,2.6或2.7)。
答案 8 :(得分: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 \帮助]
[HKEY_CURRENT_USER \ SOFTWARE \ Python \ PythonCore \ 2.7 \ Help \ Main Python Documentation] @ =" C:\ Python27 \文件\ python272.chm"
[HKEY_CURRENT_USER \ SOFTWARE \的Python \ PythonCore \ 2.7 \安装路径] @ =" C:\ Python27 \"
[HKEY_CURRENT_USER \ SOFTWARE \的Python \ PythonCore \ 2.7 \安装路径\ InstallGroup] @ =" Python 2.7"
[HKEY_CURRENT_USER \ SOFTWARE \的Python \ PythonCore \ 2.7 \模块]
[HKEY_CURRENT_USER \ SOFTWARE \的Python \ PythonCore \ 2.7 \ PYTHONPATH] @ =" C:\ Python27 \库; C:\ Python27 \的DLL; C:\ Python27 \ LIB \ LIB-TK"
将上述内容粘贴到记事本中并将其保存为Python27.reg。现在运行/合并上面的答案中提到的文件。 (确保根据您的安装更正Python安装的路径。
对于当前用户,它只是做了上述答案对本地机器的建议。
答案 9 :(得分:0)
这是指向其他帖子/帖子的链接。我能够运行这个脚本来自动注册Python 2.7。 (确保从要注册的Python 2.x .exe
运行它!)
要注册Python 3.x我必须修改print
语法并导入winreg
(而不是_winreg
),然后运行Python 3 .exe
。
答案 10 :(得分:-2)
你可以在这里找到很多lib的64位安装程序:http://www.lfd.uci.edu/~gohlke/pythonlibs/