LoginSignup
2
3

More than 1 year has passed since last update.

【Pyinstaller】Python exe化の様々なエラー解決策

Last updated at Posted at 2022-12-25

前置き

この記事はPyinstallerのインストール方法やexe化について説明するものではありません。
Pyinstallerで発生するエラーを"解決するだけ為"の記事になります。
様々なエラーがありますので、早速説明していきたいと思います。

Pyinstallerは複数インストールしている

原因

Pyinstallerが複数の環境にインストールされていると処理が正しく実行されない場合があります。
詳しい原因を調査しましたが、原因は判明しておりません。

解決策

コマンドプロンプト(cmd)を管理者権限で起動してください。
起動したら下記の様に入力してください。

cmd
>>where pyinstaller

パスが複数行表示された場合は多数の環境でインストールが行われています。
必要な環境の方だけPyinstallerを残し、他の環境のPyinstallerはpip uninstallでアンインストールしてください。

exeファイルを実行後のエラーが「No such file or directory」

原因

エラー内容は「○○って名前のディレクトリはどこにもないよ」という感じのニュアンスです。
考えられる原因は下記の二つです。

・exeファイルを設置している場所が誤っている
・そもそもディレクトリが無い

解決策

ソースコードを再確認し、パスが誤っていないか確認を行ってください。
また、exe化したPythonファイルと同じ階層にexeファイルを設置し、再度実行してみてください。

exe化時のエラーが 「No module named 〇〇」

原因

エラー内容は「○○って名前のモジュールが見つからないよ!」という感じのニュアンスです。
原因はライブラリの読み込みの失敗だそうです。

解決策

Pyinstaller実行時に生成される○○○.spec(○○○はexe化対象のPythonファイル名)というファイルを開いていただき、

hiddenimports=[],

この文字列を見つけてください。
そしてNo module named ○○というエラー文の○○の文字を

specファイル
hiddenimports=[’○○’],

と入力してください。同様のエラー文が複数ある場合は、

specファイル
hiddenimports=[’○○’, '××', '△△'],

と入力してください。
Pythonのリスト型のイメージです。
入力し終えたら上書き保存を行い、cmd等で下記の様に実行してください

cmd
pyinstaller 〇〇〇.spec 

※〇〇〇はファイル名に置き換えてください。また「--onfile」などのオプションも自由に追加してOKです

exe化時のエラーが 「No module named PyInstaller」

他の記事で作成したのでこちらをご覧ください。

--onefileと--noconsoleの同時使用

原因

--onefile | ライブラリ等をまとめてexeに格納させる
--noconsole | exeファイルの実行時に出てくるコンソール(黒い画面)を非表示にする
Pyinstallerには上記の様な便利なオプションが用意されています。
二つとも便利なので両方使いたいですよね!
しかし、exeファイルの実行時にエラーが発生する場合が稀にあります。
これはPyinstaller特有のバグだそうです。

解決策

Pyinstallerのオプションである上記の2つは同時に入力してはいけません。
どちらかを選んでオプション付けして実行してください。

まとめ

お読み頂きありがとうございました。
私も上記のエラーで1週間は潰したといっても過言ではありません。
他の方のお役に立てたらと思い、記事にしました。
何かご指摘等ございましたら、コメントをお願いいたします!

2
3
1

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
3