无法运行 PyInstaller - "Please install PyWin32 or pywin32-ctypes"



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

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

我已经在这个问题上用谷歌搜索了很多,但找不到答案。谁能帮忙?

打开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

我在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。

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

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

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

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

在Windows中,执行"Pyinstaller的位置" - 这将告诉您它在路径中的显示位置,以及键入Pyinstaller时它将从何处运行。

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

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

最新更新