1.はじめに
pyinstallerで実行ファイルをエラーなく生成完了したのに、生成したexeファイルを実行すると何もせず(エラーも出ず)そのまま終了してしまう現象がありました。 (pythonの引数にpyファイルを与えて実行することは当然できるものとします)
特定の環境で起きるのかどうかよくわからないですが、とりあえず処置方法を残します。
実行環境
- Windows版Python Ver.3.7
- pip経由でインストールしたpyinstaller Ver.4.7
- envで仮想環境を作っている
__main__
を含むファイル(ここではHoge.py)から、別のpyファイルのクラスを呼び出して実行している1
> ...\env\Scripts\python.exe --version Python 3.7.8 > ...\env\Scripts\pyinstaller.exe --version 4.7
状況
>...\env\Scripts\pyinstaller.exe --onefile --clean Hoge.py 89 INFO: PyInstaller: 4.7 89 INFO: Python: 3.7.8 89 INFO: Platform: Windows-10-10.0.19041-SP0 ... 8398 INFO: Updating resource type 24 name 1 language 0 8421 INFO: Appending PKG archive to EXE 10114 INFO: Building EXE from EXE-00.toc completed successfully.
実行します。
> dist\Hoge.exe >
何も処理せず空白行だけ出てきて、終了してしまいます。
2.結論
pyinstaller コマンドに与える引数のファイル名を、すべて小文字(Hoge.py→hoge.py)にする。
> ...\env\Scripts\pyinstaller.exe --onefile --clean hoge.py 89 INFO: PyInstaller: 4.7 89 INFO: Python: 3.7.8 89 INFO: Platform: Windows-10-10.0.19041-SP0 ... 8398 INFO: Updating resource type 24 name 1 language 0 8421 INFO: Appending PKG archive to EXE 10114 INFO: Building EXE from EXE-00.toc completed successfully.
実行します。
> dist\hoge.exe ...(処理が進む) >
hoge.py自体のファイル名の先頭は、大文字のままで構いません。 pyinstallerに与える引数を小文字にするだけで、結果が変わります。
3.まとめ
対処療法的な結論ですが、ご参考になれば幸いです。 (なんでこんなことに・・・)
-
これが何か影響しているのかなぁ・・・↩