GitHubで公開しているKAT_Subtitleをexeに変換するにはpyinstallerを使用する必要があります。
ただ何の工夫もせずにpyinstallerを使用するとコンパイル語の容量が300-800 Mb程度になってしまいます。原因はpyinstallerが不要なライブラリーをexeに梱包してしまうからです。
これの対策として、virtualenvが使えます。
exeへの変換手順
pip install virtualenv #virtualenvのインストール
virtualenv env #仮想環境envの作成 envという名前のフォルダが作成されます。
.\env\Scripts\activate #作成した仮想環境を有効化
pip install fastapi python-osc uvicorn pyinstaller#必要なライブラリをインストール
pyinstaller main.py --onefile --name KAT_Subtitle.exe --icon "icon.ico" --clean
環境によってはFastAPIがうまく扱えないことがあります。その場合の対策は以下の通りです。
- extra-hooksというフォルダを作成し、以下の内容をhooks-uvicorn.pyという名前で保存します。
## extra-hooks/hooks-uvicorn.py
from PyInstaller.utils.hooks import get_package_paths
datas = [(get_package_paths('uvicorn')[1], 'uvicorn')]
- pyinstallerを実行する際にadditional-hooks-dir オプションを追加する
具体的には以下のようなコマンドを実行することになります。
pyinstaller --additional-hooks-dir extra-hooks main.py --onefile --name KAT_Subtitle.exe --icon "icon.ico" --clean
参考資料
python - Reducing size of pyinstaller exe - Stack Overflow
python - Pyinstaller-compiled Uvicorn server does not start correctly - Stack Overflow