无法在 Windows 10 上使用 PyQt5 运行我的 pyinstaller 制作的.exe 应用程序?

无法在 Windows 10 上使用 PyQt5 运行我的 pyinstaller 制作的.exe 应用程序?

在 Win10 64 位上,我为 Python3.4.3 安装了 PyQt5_5.4.1。我需要 3.4.3 来支持 XP 客户端,这是可以在 XP 上安装的最后一个版本。PyQt5 自行安装在 python3.4.3 文件夹中C:\Python34,我可以在 PATH 中看到它C:\Python34\Lib\site-packages\PyQt5

当我用 运行脚本时,python myscript.py一切正常,GUI 窗口显示出来。但是,当我尝试从用pyinstaller以下方式创建的脚本运行 .exe 文件时pyinstaller myscript.py --onefile,出现错误:

Qt: Untested Windows version 10.0 detected!
This application failed to start because it 
could not find or load the Qt platform plugin "windows".

Reinstalling the application may fix this problem.

我在 myscript.py 中有以下代码:

from PyQt5 import QtWidgets, QtCore, QtGui

这个问题有解决办法吗?我尝试重新安装 PyQt5,但没有成功。

答案1

在你的项目目录中创建一个钩子文件。将其命名为hook-PyQt5.py例如:

from PyInstaller.utils.hooks import qt_plugins_binaries
# Fixed the issue: could not find or load the Qt platform plugin "windows".
binaries = qt_plugins_binaries('platforms', 'PyQt5')

在 Pyinstaller spec 文件中,添加一个参数

钩子路径=['./']

分析对象:

a = Analysis(
    ...
    hookspath=['./'],
    ...
)

或者如果直接使用 PyInstaller,则在命令行中指定参数“--additional-hooks-dir”。

python -m PyInstaller --additional-hooks-dir="./" <your-script>

相关内容