无法运行 PyInstaller - “请安装 PyWin32 或 pywin32-ctypes”

问题描述 投票:0回答:5

我在 Windows 10 64 位上使用 Python 3.7 32 位。 Python 是从 Python 网站上的可执行文件安装的,而不是 Anaconda 包。当我从命令提示符运行 pyinstaller 时,它返回错误:Error Message 我已经安装了 pypiwin32、pywin32 和 win32ctypes。但还是有错误。

我尝试从 Windows CMD、Pycharm 和虚拟环境运行 pyinstaller,所有这些都安装了必要的库,但我无法使其工作。

我在这个问题上搜索了很多,但找不到答案。有人可以帮忙吗?

python pyinstaller
5个回答
10
投票

打开python(使用Python 3.7.4测试)并检查是否可以在不干预的情况下从环境中找到模块:

python.exe
>>>import pywintypes
>>>import win32api

如果成功,修复很简单。在 PyInstaller 文件夹中找到文件 compat.py。并编辑以下两行。

替换:

    from win32ctypes.pywin32 import pywintypes
    from win32ctypes.pywin32 import win32api

    import pywintypes
    import win32api


2
投票

我在 32 位 Windows 10 64 位计算机上运行 Python 3.6。使用“pip install pyinstaller”中的最新稳定版本我遇到了与您相同的错误。

解决此问题的最快方法是从 cmd 运行以下命令:

pip uninstall pyinstaller

然后在cmd中运行以下命令:

pip install https://github.com/pyinstaller/pyinstaller/tarball/develop

这为您提供了当前正在开发的版本,他们已修复了该问题。

请参阅 https://media.readthedocs.org/pdf/pyinstaller/latest/pyinstaller.pdf 了解更多信息。


0
投票

我在某处读到过说 auto-py-to-exe 确实安装了正确版本的 pywin32-ctypes。所以解决方案可能是:安装 auot-py-to-exe 包。

我还没有看到问题。因此尚未验证该解决方案是否有效。

使用 auto-py-to-exe 一段时间了。有时,由于与此 SO 中的问题无关的原因,它需要进行其他调整才能使其正常工作。由于它基于 PyInstaller,因此安装它应该引入 PyInstaller 的所有正确依赖项。


0
投票

这个问题有很多版本,但是,这个解决方案对我有用:

在 Windows 中,执行“where pyinstaller” - 这将告诉您它出现在路径中的位置,以及当您键入 pyinstaller 时它将从哪里运行。

我有不止一个:python 3.7 Scripts 目录中的旧版本,它首先出现在路径中,而 3.10 中的较新版本则在我的 AppData 目录中。

我一直在从 pip 安装、卸载和重新安装各种模块,这适用于当前的 3.10 python 安装,但该消息仍然存在。然后我尝试了“where pyinstaller”并意识到路径首先选择了 3.7 中的旧版本。因此,将 3.7 脚本移至 Scripts_bak,以便该路径不再从该位置获取 pyinstaller,并且在下一次运行 pyinstaller 时,一切都按预期工作。


0
投票

我检查了旧的Python安装、缺少升级、Path环境变量,但最后我不得不运行

pip install --upgrade cffi

它修复了错误。

© www.soinside.com 2019 - 2024. All rights reserved.