Help us understand the problem. What is going on with this article?

PyQt5で作成したアプリケーションをPyInstallerでEXE化する

More than 3 years have passed since last update.

ざっくり言うと

  • PyQt5を用いたGUIアプリケーションをPyInstallerでWindowsのEXE化する際にハマった
  • ビルド時にPyQtのパスを指定することで、ビルドが通る

状況

PyQt5を用いてGUIアプリケーションを作成していた。
アプリケーションは、ウインドウにドラッグアンドドロップされたファイルの解析を行い、エクセル形式でファイルを出力するというものである。
配布するために、EXE化しようと思ってPyInstallerを用いたところ、ビルドは成功するが実行できない。

実行時のエラーメッセージは failed to execute script pyi_rth_qt5plugins

環境については、

  • Windows 10
  • Python (3.5.3)
    • future (0.16.0)
    • PyInstaller (3.2.1)
    • pypiwin32 (219)
    • PyQt5 (5.8.1)
    • sip (4.19.1)
    • XlsxWriter (0.9.6)

対策

pyinstaller実行時にPyQtのパスを設定する。

pyinstaller simple_tool.py --onefile --noconsole -p "C:\Users\ユーザ名\AppData\Local\Programs\Python\Python35-32\Lib\site-packages\PyQt5\Qt\bin"

-pでsite-packages以下のPyQtライブラリファイルのディレクトリを指定する。

Pythonがインストールされているディレクトリは環境によりけりなので、適宜参照。

kanjirz50
日本語処理、ベトナム語処理。
https://sites.google.com/view/takahashi-kanji/
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away