安装pywin32时遇到问题
我正在尝试为Python 2.6安装pywin32。
我已经安装了Python,但它不在常规的C盘,而是在D盘。pywin32的安装程序找不到它,而且我也无法给它指定自定义路径。
我检查过,python文件夹就是那个路径。有没有什么办法可以解决这个问题?
11 个回答
我遇到了同样的问题:
在64位的Windows系统上,32位的应用程序会被注册在:
[1] HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Python
我想安装程序是希望在这里找到Python:
[2] HKEY_LOCAL_MACHINE\SOFTWARE\Python
你可以用注册表编辑器(regedit)和管理员权限,导出[1]的内容,去掉所有的“Wow6432Node\”,然后把它导入到[2]的位置。
更新 2017-06-14
看起来在 Python 3.6 中又出现了同样的问题。不过我找到一个不错的建议:可以使用 pip 安装 pywin32 的版本,只需输入
pip install pypiwin32
虽然它没有安装最新版本(目前 sourceforge 上是 221,而它安装的是 220),但它在没有修改注册表或其他复杂操作的情况下就能正常工作。
更新 2017-02-01:
我刚刚在 Windows 10(64 位)上用 Python 3.5.2 32 位尝试安装 220 版本,一切都很顺利,不需要修改注册表。所以最好的建议可能是使用最新的版本,而不是 219 版本。
旧解决方案(219 版本):
今天我在 Windows 8.1 上尝试安装 pywin32 和 Python 3.5 win32 时遇到了同样的问题。
所有针对 Python 3.5 的安装程序(219 版本)都失败了,而根据 Jesus Flores 和 lauren alsina 的帖子修改注册表也没有解决问题。
对我来说,解决办法是把注册表项添加到 HKEY_CURRENT_USER
而不是 HKEY_LOCAL_MACHINE
,并且把 PythonCore
中的 Python 版本从 3.5-32
改成 3.5
。
有趣的是,使用 3.5-32
这个键时,64 位的安装程序可以工作,但当然你会遇到问题,因为安装的 64 位库与 32 位的 Python 不兼容。这个安装程序确实有些问题。
总之,我的 Python 3.5 w32 的有效 .reg 文件看起来是这样的:
Windows Registry Editor Version 5.00
[HKEY_CURRENT_USER\SOFTWARE\Python]
[HKEY_CURRENT_USER\SOFTWARE\Python\PyLauncher]
"InstallDir"="C:\\Windows\\"
"AssociateFiles"=dword:00000001
@="C:\\Windows\\py.exe"
[HKEY_CURRENT_USER\SOFTWARE\Python\PythonCore]
[HKEY_CURRENT_USER\SOFTWARE\Python\PythonCore\3.5]
[HKEY_CURRENT_USER\SOFTWARE\Python\PythonCore\3.5\Help]
[HKEY_CURRENT_USER\SOFTWARE\Python\PythonCore\3.5\Help\Main Python Documentation]
@="C:\\Program Files (x86)\\Python 3.5\\Doc\\python350.chm"
[HKEY_CURRENT_USER\SOFTWARE\Python\PythonCore\3.5\Idle]
@="C:\\Program Files (x86)\\Python 3.5\\Lib\\idlelib\\idle.pyw"
[HKEY_CURRENT_USER\SOFTWARE\Python\PythonCore\3.5\IdleShortcuts]
@=dword:00000001
[HKEY_CURRENT_USER\SOFTWARE\Python\PythonCore\3.5\InstalledFeatures]
"dev"="3.5.150.0"
"Shortcuts"="3.5.150.0"
"exe"="3.5.150.0"
"lib"="3.5.150.0"
"test"="3.5.150.0"
"doc_shortcut"="3.5.150.0"
"doc"="3.5.150.0"
"tools"="3.5.150.0"
"tcltk"="3.5.150.0"
"pip"="3.5.150.0"
"path"="3.5.150.0"
[HKEY_CURRENT_USER\SOFTWARE\Python\PythonCore\3.5\InstallPath]
@="C:\\Program Files (x86)\\Python 3.5\\"
"ExecutablePath"="C:\\Program Files (x86)\\Python 3.5\\python.exe"
[HKEY_CURRENT_USER\SOFTWARE\Python\PythonCore\3.5\InstallPath\InstallGroup]
@="Python 3.5"
[HKEY_CURRENT_USER\SOFTWARE\Python\PythonCore\3.5\PythonPath]
@="C:\\Program Files (x86)\\Python 3.5\\Lib\\;C:\\Program Files (x86)\\Python 3.5\\DLLs\\"
来自pywin32的说明
如果安装过程中提示你在注册表中找不到Python,这几乎肯定是因为你下载了错误的版本——要么是针对错误版本的Python,要么是针对错误的“位数”。
你确定你下载的是适合你的Python版本和CPU架构的正确版本吗?如果确认没问题但还是不行,你可以尝试从源代码构建,我觉得可能有一个命令行参数可以让你指定Python的安装位置。