如何在Windows 7上安装pywin32模块

49
我正在尝试安装pywin32。我从sourceforge.net下载了它。当我运行时,
setup.py install

显示“无法找到vcvarsall.bat”。我查了Google发现需要安装MinGW并设置路径,然后运行。

python setup.py build --compiler=mingw32

但它正在显示


Can't find a version in Windows.h

有人能帮忙吗?(我安装了Visual Studio 2010 Ultimate试用版和MinGW C和C++编译器。操作系统:Windows 7。)

有人能告诉我一个源,我可以从中下载已经在MinGW中编译的Python二进制文件,这样我就不必自己做了。或者如果我可以获得已经拥有Windows模块的Python。

5个回答

132
您可以使用PIP从PYPI安装pywin32 wheel包,只需指向此包:https://pypi.python.org/pypi/pypiwin32 无需担心首先下载包,只需使用pip即可。
pip install pypiwin32

目前我认为这是“最容易”的方式使其正常工作。


4
能够像这样轻松安装很不错。但是,如果尝试编写一个Windows服务并使用虚拟环境来运行它,则需要将pypiwin32_system32中的DLL文件对系统可见,否则会出问题。运行pywin32_postinstall.py也无法解决此问题,因为它在pywin32_system32中查找DLL(中间没有pi)。在这种情况下,遵循@jpmc26的答案效果更好。以下是一个链接,指向一个不太流行但非常有用的问题,关于这个问题:https://dev59.com/klsW5IYBdhLWcg3wsY5P#34942168 - kishkin
1
似乎无法在Python 3.6上运行(在3.5上可行)。 - Rehan
3
我认为在Windows上正确的命令应该是:python -m pip install pypiwin32(pip不一定在路径中)。 - Peter Lamberg
有时候你想在没有网络连接或者在一堆连接缓慢或受限的机器上安装软件包...在这些情况下,这个工具就非常有用了:pip download pypiwin32 下载到当前目录 pip install --no-index --find-links=. pypiwin32 从当前目录安装 - 如果将其放在脚本中并从 USB 或网络驱动器运行,则易于移植。 - NiKiZe
1
根据 https://github.com/mhammond/pywin32/issues/1151#issuecomment-360563280,我认为你现在应该使用 pywin32 而不是 pypiwin32,而且自 2018 年初以来就一直是这样。你能否测试并相应地更新这个答案? - Mark Amery
显示剩余6条评论

35

你是只想安装它,还是要编译源代码?

如果你只需要安装,最简单的方法是使用这里提供的MSI安装程序:

http://sourceforge.net/projects/pywin32/files/pywin32/ (更新版本)

请确保获取正确的版本(与Python版本、32位/64位等匹配)。


这在我的64位Windows 7上使用Python 3.5可行。感谢您的提示。 - Alex P. Miller
该项目已迁移到 https://github.com/mhammond/pywin32。 - Cimbali

14

我不同意被接受的回答是"最简单的",特别是如果你想使用virtualenv。

相反,你可以使用非官方的Windows二进制文件。从那里下载适当的wheel文件,并用pip安装它:

pip install pywin32-219-cp27-none-win32.whl

确保您选择适用于Python正确版本和位数的那个。

您可能能够通过pip获取URL并安装它,而不必先下载它,但是现在他们让抓取URL变得有点困难。最好还是先下载然后自己托管。


点赞。请注意,原始答案是5年前发布的,在.whl格式被使用之前 :) - Corey Goldberg
@CoreyGoldberg 没错,但是即便在wheel出现之前,你其实可以用二进制egg来做类似的事情: easy_install pywin32-216.win32-py2.7.exe。这样做的优点是你可以编写脚本,并且它支持virtualenv。可能不是5年前,但至少已经有3到4年了。 - jpmc26
@CoreyGoldberg?我在您分享的SourceForge上没有看到任何"wheel"(轮子)文件,只有二进制egg可执行文件。非官方网站为众多Python库提供了wheel文件。我的经验通常是非常好的。他们很好地打包了所有你需要运行代码所需的内容,即使官方的包叫你单独安装一些东西。因此,他们往往是我在Windows上获取Python二进制文件的首选。虽然他们可能会有一点滞后,但他们很快就会迎头赶上。 - jpmc26
抱歉,我提到的链接实际上在@Kanguros的回答中:https://pypi.python.org/pypi/pypiwin32 - Corey Goldberg
2
你说得对。官方构建根本没有在PyPI上发布。软件包名称只是在PyPI上注册,并链接到一个SourceForge网址,实际上发布了.exe更新:http://sourceforge.net/projects/pywin32/files/ 如果这确实是一个高使用率的项目,它应该真正转移到现代开发托管平台,具有现代DVCS、问题跟踪和合理的发布机制,以上传到PyPI。如果我有兴趣,我会提供帮助,但我真的没有。也许有人应该推动维护者(Mark Hammond)看看他的计划是什么,是否需要帮助。 - Corey Goldberg
显示剩余2条评论

4
我遇到了完全相同的问题。问题是Anaconda没有在Windows注册表中注册Python。
1)pip install pywin 2)执行此script以在Windows注册表中注册Python 3)从Corey Goldberg的答案中下载适当的软件包,Python将被检测到

3

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接