Python
PyQt5
PyInstaller

PyQt5でGUIアプリをEXE化しようとしたらつまった話

PyQt5 + Pyinstaller + Python2.x GUIアプリのビルド

実行環境

  • windows
  • anaconda 2.x
  • pyinstaller

エラー

pyqt5を利用して作成したファイルをpyinstallerの以下のコマンドを利用して実行します。

pyinstaller {YOUR_SRIPTNAME}.py --onefile --noconsole -p "C:\Users\{YOUR_USERNAME}\Anaconda2\lib\site-packages\PyQt5\plugins\platforms"

ビルドされたexeファイルを実行しようとすると。。

This application failed to start because it could not find or load the Qt platform plugin "windows"
in "".

上記のエラーが出て動かない。。。なんでや。。。

解決策

とりあえず必要なdllをexeと同じフォルダに入れることで解決しました。
- \platformsをexeの入ったフォルダの/dist以下にコピーする。
- C:\Users\{YOUR_USERNAME}\Anaconda2\lib\site-packages\PyQt5内のlibEGL.dllを/dist以下にコピーする。

exeにしたものの実行できなくて困っている方の参考になれば。

参考

https://qiita.com/kanjirz50/items/930e9056076d04eecaec
https://stackoverflow.com/questions/17695027/pyqt5-failed-to-load-platform-plugin-windows-available-platforms-are-windo