一つのPythonのファイルについて 開発作業を終えたので PyInstallerで exe化を図ったのですが、
仕上がったexeファイルを実行すると 以下のとおり致命的エラーを招きます。

【exe化の作業の上で心配している点】
勉強がてらPythonのコーディングしていた際と違い、プログラムファイル(.py)と同じパスに置かれたフォルダ内の画像や
ありとあらゆるパッケージ・モジュールを多用して 完成させました。
それでいて、ドス窓からPyInstallerを利用する際に指定したのは .pyのファイルだけ、
プログラムの中で利用している画像のためのフォルダ、パッケージは PyInstallerから認識できているのかなぁ という不安があります。
以下コマンドを実行しました。
py -m PyInstaller C:\Users\hoge\source\repos\MARTINEZ\MARTINEZ\MARTINEZ.py --onefile --noconsole
--noconsoleのオプションを外して仕上がげたEXEを 実行した結果になります。
22:11PM
(noconsoleではエラー原因が解らない為)
--noconsole オプションを消して、コンソールに出力されるエラーを提示してください。
--onefile オプションでは、画像などのリソースはEXEファイル内に含まれ
実行時にTempなどへ展開されるようになります。
ソースコード側で実行時情報からPATHを得るように対応が必要です。
(_MEIPASSで検索すると対応方法の情報が見つかります)
他にも、デバッグ時とexe化後では実行時の環境が変わる為、
`sys.argv[0]` や `__file__`といった実行時情報の扱いは、別途対応が必要です。
pyinstaller Run-time Information
https://pyinstaller.readthedocs.io/en/stable/runtime-information.html
いつもお世話になっております。
分かりやすいところから対応していきます。
まずPyInstaller実行時に --noconsoleの指定をやめるところからですね
本文に PyiIstallerの実行結果を貼り付けなおしました。
仰られていたのは --noconsoleを外してexe化し 仕上がったexeを実行した結果をこちらに貼ることですよね??
exeが仕上がらなくなってしまいました。
おっとベルマークが
C:\Users\hoge> で実行してますが、これは前回と同じですか?
(同じ条件で 再度--noconsole付ければ成功しますか?)
順序的には --noconsole 付きでビルドして
先にエラーメッセージを確認した方が良さそうです。
回答は、画像等のリソースを含める場合の対応方法になります。
すみません、コマンドを間違えておりました。--noconsoleを指定しないバージョンのexe、無事仕上がりました。
アカウントを隠して 実行コマンドをこちらに貼り付けたのですが、それを再利用してしまいました。
今から仕上がったexe(--noconsoleを指定しないバージョン)の実行して 結果を本文に貼り付けます。
> 22:11PM更新分
ログを見た限り、画像の参照に失敗しているので
回答に書いた対応を試してみてください
- exeファイルに画像を含める方法 (--onefileの場合、--add-dataで指定)
- 実行時の画像のpath を実行時情報 sys._MEIPASS から得る
回答2件
あなたの回答
tips
プレビュー
