我正在尝试为Python 2.6安装pywin32。 我安装了python,但它不在常规c:驱动器中,而是在d:驱动器上。 pywin32安装程序找不到它,我无法给它自定义路径。
我检查过,python文件夹是路径。这个问题有解决方法吗?
答案 0 :(得分:15)
更新2017-06-14 似乎与python 3.6相同的问题重新开始。但我发现了一个很好的建议:有一个pywin32的pip版本:只需使用
pip install pypiwin32
它没有安装最新版本(sourceforge目前有221个,它安装了220个),但它没有注册表修改或任何其他黑客工作。
更新2017-02-01: 我刚尝试在Windows 10(64位)上使用Python 3.5.2 32位安装build 220,一切都运行良好,无需修改注册表。因此,最好的建议可能是使用最新的构建而不是构建219。
旧解决方案(构建219):
今天我尝试在Windows 8.1下安装pywin32和Python 3.5 win32时遇到了同样的问题。
py 3.5的所有安装程序(build 219)都失败了,并且如耶稣Flores和lauren alsina的帖子所述修改注册表并没有解决问题。
我的诀窍是添加注册表不在HKEY_LOCAL_MACHINE
,但在HKEY_CURRENT_USER
和更改PythonCore
中的{{}} {{}} 1}}到3.5-32
。
有趣的是,使用3.5
密钥,64位安装程序可以工作,但是当然你会遇到问题,因为安装的64位lib与32位python不兼容。这个安装程序中有些东西很破碎。
总而言之,我为Python 3.5 w32工作的.reg文件如下所示:
3.5-32
答案 1 :(得分:14)
来自pywin32 README
如果安装过程通知您未找到Python 注册表,它几乎肯定意味着你已经下载了错误的版本 - 无论是错误版本的Python,还是错误的“苦涩”。
你确定你的python和你的cpu架构有正确的版本吗?如果你这样做并且没有用,你可以尝试从源代码构建,我认为可能有一个命令行标志,允许你指定python安装位置。
答案 2 :(得分:8)
我遇到了同样的问题:
在64位Windows上,32位应用程序正在注册:
[1] HKEY_LOCAL_MACHINE \ SOFTWARE \ Wow6432Node \ Python
我认为安装程序希望在以下位置找到Python:
[2] HKEY_LOCAL_MACHINE \ SOFTWARE \ Python
使用regedit和本地管理员权限,您可以导出[1]的.reg文件,删除所有" Wow6432Node \"你找到,然后导入为[2]
答案 3 :(得分:3)
对于在Windows 10 64位上运行的最新Python36-32,我遇到了同样的问题。当安装所有用户模式时,上述所有解决方案都不适用于我。
上面的回答几乎可以通过将3.5替换为3.6,然后pywin32可以检测到注册表路径,但它仍然失败,错误代码为can't create pywin32-wininst.log. Try to run as administrator
。它只是停止安装然后退出,即使已经以管理员身份运行它。
经过多次试验,它解决了如下:
取Obu's approach above,将3.5版本替换为3.6。
注册。
C:\Program Files (x86)\Python36-32
到C:\Program Files (x86)\Python36
*道歉我不能在这里回复评论到期声誉限制,所以我创建这个答案是为了帮助那些遇到同样麻烦的人。
答案 4 :(得分:2)
我在使用Python 3.6的Windows 10 64位上遇到了同样的问题。它是为所有用户安装的(我猜它使用不同的注册表配置单元,以防它仅为当前用户安装)。
问题是 pywin32-220.win32-py3.6.exe 在注册表中搜索HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\Python\PythonCore\3.6
,而python 3.6安装程序创建HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\Python\PythonCore\3.6-32
。
注意不同的结局!将3.6-32
注册表导出到.reg
文件,修改3.6
的路径并重新导入文件注册表再次为我解决了问题。
答案 5 :(得分:0)
1)使用以下内容创建文本文件:
Windows Registry Editor Version 5.00
[HKEY_LOCAL_MACHINE\SOFTWARE\Python\PythonCore\3.4]
[HKEY_LOCAL_MACHINE\SOFTWARE\Python\PythonCore\3.4\Help]
[HKEY_LOCAL_MACHINE\SOFTWARE\Python\PythonCore\3.4\Help\Main Python Documentation] @="C:\\Python34\\Doc\\python342.chm"
[HKEY_LOCAL_MACHINE\SOFTWARE\Python\PythonCore\3.4\InstallPath] @="C:\\Python34\\"
[HKEY_LOCAL_MACHINE\SOFTWARE\Python\PythonCore\3.4\InstallPath\InstallGroup] @="Python 3.4"
[HKEY_LOCAL_MACHINE\SOFTWARE\Python\PythonCore\3.4\Modules]
[HKEY_LOCAL_MACHINE\SOFTWARE\PythonCore\3.4\PythonPath] @="C:\\Python34\\Lib;C:\\Python34\\DLLs"
2)用您安装python的路径替换C:\\ Python34部分。
3)将文件另存为* .reg
4)执行文件以与注册表结合。
刚刚测试它以安装pywin32并且It Works!
答案 6 :(得分:0)
我遇到了类似的情况,尝试安装 pywin32 ,但使用Winpython便携式安装。经过一番谷歌搜索后,我发现了.whl
个pip install pywin32‑221‑cp36‑cp36m‑win32.whl
箱中这个庞大的包裹库的链接。Christoph Gohlke。
为我的python版本下载适当的wheel文件,在32bit的情况下为3.6.1,并通过 pip 安装:
{{1}}
答案 7 :(得分:0)
这适用于Python 3.5用户:
py -3.5 -m pip install pywin32
答案 8 :(得分:0)
我遇到了这个确切的问题,但是在我看来,我的处境有些不同,此外,我不想使用注册表黑客。因此,我开始发布一个新问题。这是我要写的:
我在Windows 7计算机上安装了Python 3.7的64位和32位版本。 64位版本安装在C:\ Python37中,而32位版本安装在C:\ Python37-32中。我在64位版本中安装了pywin32软件包,但在32位版本中没有安装。当我启动命令窗口时,切换到C:\ Python3y-32,然后运行“ pip install pywin32”,会提示它已经安装在C:\ Python37中。对,我知道。我希望将其安装在其他地方。我尝试下载轮文件并进行安装,结果相同。我尝试将C:\ Python37文件夹重命名为“ C:\ Python37 64位”,并将C:\ Python37-32重命名为C:\ Python37,但是pip给了我一个致命错误:
启动器中出现致命错误:无法使用以下命令创建进程
'“ c:\ python37-32 \ python.exe”
“ C:\ Python37 \ Scripts \ pip.exe”安装“ c:\ users \\ downloads \
pywin32-223-cp37-cp37m-win32.whl“'
(添加了换行符以提高可读性)
但是随后我再次查看该错误消息,并意识到加引号的字符串是命令。我复制了该字符串,在命令窗口中切换到C:\ Python37-32文件夹,粘贴了该字符串,删除了对C:\ Python37的引用,然后运行它。没问题。
答案 9 :(得分:0)
ManualInstall
获取所需的WHL文件并将其重命名为ZIP。
将该ZIP文件提取到目录中。
以下是一些用于安装的批处理代码:
set /p "S1=Manual Install - Wheel (ZIP) extract directory: "
set /p "S1=Python installation directory: "
RoboCopy %S1% "%S2%\Lib\site-packages"
将代码复制到BAT或CMD文件中。
以管理员身份运行脚本并接受输入。
答案 10 :(得分:-1)
pywin32 build 219有一个问题,就是在错误的注册表项中查找python 3.5 32位安装位置。在以后的pywin32版本中修复了这个问题 - 220和221是我试过的 - 他们正确地在注册表中找到python安装位置。您可以看到pywin32票证here。
如果需要build 219,则可以临时重命名注册表项。
我在PC上为所有用户安装了python,因此我机器上的注册表项位于HKEY_LOCAL_MACHINE
。如果您按用户安装python,则注册表项将位于HKEY_CURRENT_USER
中。另外,我的COM对象是32位,所以我们使用32位python。
32位python注册表项位于:\SOFTWARE\Wow6432Node\Python\PythonCore
。
64位python注册表项位于:
\SOFTWARE\Python\PythonCore
。
就我而言,我有两个需要暂时重命名的条目:
HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Python\PythonCore\3.5
HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Python\PythonCore\3.5-32
Python安装位置位于InstallPath
键,我的机器位于:
HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Python\PythonCore\3.5-32\InstallPath
我的\PythonCore\3.5
文件夹只有\Help\Pythonwin Reference
密钥,该密钥在\PythonCore\3.5-32
文件夹中重复,因此我认为此密钥是从以前的某些安装中遗留下来的,不再相关。但是,我没有选择删除它,我暂时将其重命名如下:
自:
HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Python\PythonCore\3.5
要:
HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Python\PythonCore\3.5-temp
自:
HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Python\PythonCore\3.5-32
要:
HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Python\PythonCore\3.5
完成pywin32 build 219安装后,我将密钥恢复为原始名称。