安装pywin32时遇到问题

8 投票
11 回答
54777 浏览
提问于 2025-04-16 21:19

我正在尝试为Python 2.6安装pywin32。
我已经安装了Python,但它不在常规的C盘,而是在D盘。pywin32的安装程序找不到它,而且我也无法给它指定自定义路径。

我检查过,python文件夹就是那个路径。有没有什么办法可以解决这个问题?

11 个回答

8

我遇到了同样的问题:

在64位的Windows系统上,32位的应用程序会被注册在:

[1] HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Python

我想安装程序是希望在这里找到Python:

[2] HKEY_LOCAL_MACHINE\SOFTWARE\Python

你可以用注册表编辑器(regedit)和管理员权限,导出[1]的内容,去掉所有的“Wow6432Node\”,然后把它导入到[2]的位置。

16

更新 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\\"
15

来自pywin32的说明

如果安装过程中提示你在注册表中找不到Python,这几乎肯定是因为你下载了错误的版本——要么是针对错误版本的Python,要么是针对错误的“位数”。

你确定你下载的是适合你的Python版本和CPU架构的正确版本吗?如果确认没问题但还是不行,你可以尝试从源代码构建,我觉得可能有一个命令行参数可以让你指定Python的安装位置。

撰写回答