PyInstaller ビルド手順(メモ)¶
エントリポイント¶
推奨はモジュール起動と同じ挙動になる main.py です。
pyinstaller ... main.py
これにより iRIC_DataScope/app.py の「直接実行用のパス調整」ロジックを避けられます。
オプション例¶
過去の実行例(履歴)は pyinstaller用.txt を参照してください。
よくあるエラーと対処¶
ModuleNotFoundError: No module named 'logging.handlers'--hidden-import=logging.handlersを追加ImportError: cannot import name 'ttk' from 'tkinter'--hidden-import=tkinter.ttkと--hidden-import=tkinter.filedialog/--hidden-import=tkinter.messageboxを追加matplotlib関連で起動時に落ちる / 画像出力だけ失敗するmatplotlibはバックエンドやmpl-data(フォント等)の収集が必要になる場合があります- まずは
--collect-data matplotlibを追加し、それでも不足する場合は--collect-submodules matplotlibや--hidden-import=matplotlib.backends.backend_tkaggを追加 scipy関連で補間処理が動かないscipyを使う場合は--collect-submodules scipy(または--collect-all scipy)を追加
サイズを下げたい場合¶
--collect-allはサイズが増えやすいので、まずは--collect-submodulesを使い、足りないものだけ--hidden-importで追加していくのが安全です。--exclude-moduleで不要なテスト系を外すと少し減る場合があります(例:matplotlib.tests,pandas.tests)--onefileは便利ですがサイズが増えやすいので、サイズ優先なら--onedirも検討してください(配布形態次第)