無法在 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

在專案目錄中建立一個鉤子檔案。命名它鉤子-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規格檔中,加入一個參數

hookspath=['./']

到分析對象:

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

或如果直接使用 PyInstaller,則在命令列中指定一個參數「--additional-hooks-dir」。

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

相關內容