Windows 10 で PyQt5 を使用して pyinstaller で作成した .exe アプリを実行できませんか?

Windows 10 で PyQt5 を使用して pyinstaller で作成した .exe アプリを実行できませんか?

Win10 64ビット版では、Python3.4.3用にPyQt5_5.4.1をインストールしました。XPクライアントをサポートするには3.4.3が必要で、これが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の仕様ファイルにパラメータを追加します

フックパス=['./']

分析オブジェクトへ:

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

または、PyInstaller を直接使用する場合は、コマンドラインに引数 "--additional-hooks-dir" を指定します。

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

関連情報