1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

備忘録:Anaconda環境におけるPyInstallerの注意点(軽量化)

Posted at

背景

GitHub から配布されていた exe 形式のアプリを一部修正したくなった。
ソースコードを確認するとPythonで書かれておりPyInstaller が使われていた。
そこで自分の環境で再ビルドを試みた。

本アプリはOpen3Dを使用していたので、それも加味した容量削減についても記述する。

やったことと気づき

① conda install でライブラリを揃えてビルド

  • Anaconda で新環境を作成しconda installを中心にライブラリを揃えた
  • 以下の問題が発生:
    • バッチファイル経由ではビルドできなかった
    • python コマンドで直打ちすればビルド成功
      → conda のラッパー経由だと依存解決やパス指定が微妙に違う?

② pip install でライブラリを揃えてビルド

  • Anaconda で新環境を作成しpip installのみでライブラリを揃えた
  • バッチファイルを修正しPython のフルパスを明示 & PyInstaller を呼ぶように変更
  • 結果:
    • バッチファイル経由でもビルド成功
    • exe 容量が大きく減少(ただしまだ肥大気味)
      → conda より pip の方が依存が軽くビルドサイズに直結

③ Python 3.11 + Open3D 0.18 系にダウングレード

  • Python を 3.11 に下げて環境を作り直し、Open3D を 0.18系で固定
  • 結果:
    • Open3D 0.19 系で必須だった plotly / dash系ライブラリが不要になった
    • exeファイルの容量がさらに縮小
      → これ以上はバージョンをさらに下げる必要があると推測

ビルドサイズ比較

環境 Python / Open3D install exe サイズ
オリジナル 不明 (2022年が最新) 不明 56,971 KB
① conda install 環境 3.12 / 0.19 系 conda 267,102 KB
② pip install 環境 3.12 / 0.19 系 pip 119,451 KB
③ pip + ダウングレード 3.11 / 0.18 系 pip 88,439 KB

まとめ

  • conda install より pip install を使う方が軽量化できる
  • バッチファイル経由でビルドするなら python.exeのフルパスを明示すべき
  • ライブラリのバージョンによって依存関係が大きく変わりサイズにも直結する
    • 特に Open3D 0.18 系 → plotly/dash 不要
    • Open3D 0.19 系 → 依存が増えて exe サイズ肥大

教訓

  • Anaconda 環境での PyInstallerビルドは pip主体でライブラリを管理する方が安定 & 軽量
  • exe サイズが気になる場合ライブラリのバージョンを一段下げてみるのも有効
  • バッチファイルで失敗したら、まずは pythonコマンド直打ち

参考

1
0
0

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
1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?