[AI] LlamaIndexアプリ製作 その2 仮想環境を使ったアプリ軽量化 PyQt6 / py2app / virtualenv

[M1 Mac, Monterey 12.6.3, Python 3.10.4]

py2appを使ったappファイル作成の際の出力をチェックするとどうやら無関係なライブラリも取り込んでいるようなので、仮想環境を使って軽量化を図りました。

今回はvirtualenvを使いました。venvは標準機能として入っていますが、システムのPythonから離れることは出来ません。Pythonのバージョンを自由に選べるvirtualenvの方が使い勝手は良さそうです。

Pythonの主な仮想環境:pyenv, venv, virtualenv

仮想環境を使って最低限のライブラリのみ取り込むようにした結果、248.3MBを213.8MBまで減らすことが出来ました。それでもまだまだ大きいですね。言語自体を変えないとこれ以上は厳しそうです。

py2appで作成したappファイルについてうまく起動できないケースが散見されますが、appファイルの内部にあるMacOSディレクトリに実行ファイルがありますので、これをダブルクリックするとターミナルが起動し、エラー出力の内容を確認できます。

# Python3.10の仮想環境envを作成
virtualenv -p python3.10 env

# ライブラリをインストール
./env/bin/pip install ライブラリ名

# 仮想環境envの有効化
source env/bin/activate

# 仮想環境envの無効化
deactivate
LlamaIndexプロジェクト内に仮想環境envを作成
appファイル起動トラブル時は中にある実行ファイルを起動してエラー出力を確認する