2011-07-12 34 views
7

我想为Python 2.6安装pywin32。 我安装了python,但它不在常规的c:盘符,而是在d:盘符。 pywin32安装程序没有找到它,我不能给它的自定义路径。安装pywin32的问题

我检查了,python文件夹是路径。有没有解决这个问题的方法?

回答

14

从pywin32自述

如果安装过程将通知您Python是不是在 注册表中找到,它几乎肯定意味着你已经下载了错误的版本 - 无论是对错误的Python的版本,或错误的“苦涩”。

您确定您的Python版本和您的cpu架构的版本正确吗?如果你这样做了,那么你可能会尝试从源代码构建,我认为可能会有一个命令行标志允许你指定python安装位置。

+0

我确定我有正确的版本(Python26),并且我没有找到64或32架构(我有64位)的不同软件包。所以我试图按照你的建议从源代码安装它,但是当我运行setup.py时,它会给我一些错误 – Johanna

+0

所以你是对的,这个架构有问题。我发现一个64位版本的pywin32,它工作正常:) – Johanna

+6

这个答案是“不正确的”。问题是注册表项,如果仅为用户安装python,请查找HKEY_CURRENT_USER \ SOFTWARE \ Python \ PythonCore \ 2.7而不是HKEY_LOCAL_MACHINE。确保InstallPath和PythonPath设置正确,例如InstallPath是C:\ Python27,PythonPath是C:\ Python27; C:\ Python27 \ Lib; C:\ Python27 \ DLLs。 – FastZhong

8

我有同样的问题:

在64位Windows,32个应用程序正在下注册:

[1] HKEY_LOCAL_MACHINE \ SOFTWARE \ Wow6432Node \的Python

我想安装程序是希望找到的Python中:

[2] HKEY_LOCAL_MACHINE \ SOFTWARE \ Python的

随着注册表编辑器和本地管理员权限,你ç出口的.reg文件[1],删除所有 “Wow6432Node \” 你会发现,然后将其导入为[2]

+0

非常感谢!这解决了我的问题。 – user4447655

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!

14

更新2017-06-14 似乎与python 3.6一样重新得到同样的问题。但是,我发现了一个很好的建议:有pywin32画中画版本:只需使用

pip install pypiwin32

它没有安装最新版本(SourceForge上有221的那一刻,它安装220),但它的工作不注册表修改或其他任何黑客行为。

更新2017年2月1日: 我只是试图构建220的安装使用Windows 10(64位)的Python 3.5.2 32位,一切都很好的工作没有,需要修改注册表。所以最好的建议可能是使用最新的版本而不是版本219。

老溶液(219建):

我今天遇到了同样的问题,当我试图使用Python 3.5的Win32的Windows 8.1下一起安装pywin32。

py 3.5的所有安装程序(build 219)都失败了,并且按照耶稣弗洛雷斯和劳伦阿尔西纳的帖子所述修改注册表并没有解决问题。

什么做的把戏对我来说是添加注册表entrys不HKEY_LOCAL_MACHINE但在HKEY_CURRENT_USER3.5-32PythonCore蟒蛇的版本改为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\\" 
+0

使用32位可执行文件时,可以在Windows 7和Windows 10上使用Python 3.5。谢谢。 –

+0

现在已经在Python 3.5.1([Issue#26071](https://bugs.python.org/26071))中解决了这个问题。 – Cito

+0

不错!这也适用于Windows 7上使用Pywin32 2.2.0(pywin32-220.win-amd64-py3.5.exe)的Python 3.5 * 64位* –

3

我有同样的问题在Windows 10的64位运行的是最新Python36-32。上述所有解决方案在为其安装所有用户模式时都不适用于我。

上述Obu的答案几乎可以替代3.5到3.6,pywin32可以检测注册表路径,但它仍然失败,错误代码为can't create pywin32-wininst.log. Try to run as administrator。它只是停止安装,然后退出,即使已经以管理员身份运行它。

多次试验后,它解决了象下面这样:

  1. 采取Obu's approach above,取代3.5版到3.6。

  2. 注册它。 python36-32的

  3. 重命名默认安装文件夹,这样的事情:C:\Program Files (x86)\Python36-32C:\Program Files (x86)\Python36
  4. 运行pywin32安装程序作为管理员。

*道歉我不能在这里回复评论,因为信誉限制,所以我创建这个答案是为了帮助其他与我一样麻烦的人。

+0

适用于使用Python 3.6 x86的Windows 10。谢谢。 –

2

我在使用Python 3.6的Windows 10 64位上遇到了同样的问题。它为所有用户安装(我猜它使用不同的注册表配置单元,以防仅为当前用户安装)。

的问题是,在注册表pywin32-220.win32-py3.6.exe搜索HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\Python\PythonCore\3.6而蟒蛇3.6安装程序创建HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\Python\PythonCore\3.6-32

注意不同的结局!将3.6-32注册表导出为.reg文件,将路径修改为3.6并再次重新导入文件注册表可解决此问题。

+0

而我有相反的问题。 Python 3.6安装程序创建'HKEY_LOCAL_MACHINE \ SOFTWARE \ Python \ PythonCore \ 3.6',而PyWin需要'HKEY_LOCAL_MACHINE \ SOFTWARE \ Python \ PythonCore \ 3.6-32'。我不得不暂时重命名密钥,以使安装工作成功。 –

0

我是在类似的情况下,试图安装pywin32,但与Winpython便携式安装。经过相当多的谷歌搜索,我发现Christoph Gohlke链接到.whl bin这个庞大的软件包库。

下载相应的车轮文件为您的Python版本,在我的情况3.6.1在32位,并通过PIP安装:

pip install pywin32‑221‑cp36‑cp36m‑win32.whl 
-1

pywin32建立219,它会查找问题python 3.5 32位安装位置错误的注册表项。这个问题在稍后的pywin32版本中得到了解决 - 220和221是我尝试过的 - 并且他们正确地在注册表中找到了python安装位置。你可以看到pywin32门票here

如果您需要构建219,那么您可以暂时重命名注册表项。

我为我的电脑上的所有用户安装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安装完成后,我将这些密钥恢复为原始名称。