Pyinstallerまとめ - 2023/10/16
pyinstallerを使って実行ファイルを作るときに困ったことを並べる。
ウイルス扱いされる
状況としては、Flet を使って作ったアプリケーションを flet pack で実行ファイル化しようとしたとき。
win32ctypes.pywin32.pywintypes.error: (225, '', 'ファイルにウイルスまたは望ましくない可能性のあるソフトウェアが含まれているため、操作は正常に完了しませんでした。')
このようなエラーによって異常終了した。
pyinstaller ウイルス などで調べるといくらかヒットするため、よくある事象っぽい。
一旦 ここ を参考に、Gitからクローンした Pyinstaller を使う。 code: bash
$ cd pyinstaller
$ cd bootloader
$ python .waf distclean all
$ python setup.py install
$ pyinstaller
# ・・・
ヘルプの表示が出たらOK。
これで、一旦ウイルス扱いは避けられるようになる。
仮想環境のファイルを含める
上にあるように、Fletを使ったアプリケーションを実行ファイルにしようとしているが、上記の状態にしてpyinstallerをそのまま使っても対象のファイルがどこにあるか自動で見つけてくれない。
自分で指定してやる必要があるので、--paths オプションを利用する。
code:bash
# パスはwindows前提で
$ pyinstaller .\path\to\app.py -n app_name --noconsole --onefile --paths .\venv\Lib\site-packages --paths .\my_packages --icon=.\path\to\icon.ico
# -n: 実行ファイルの名前になる
# --noconsole: 実行時、コマンドプロンプトが出るのを防ぐ
# --onefile: 実行ファイル一つにまとめてくれる
# --paths: 実行ファイルにまとめる、importしているファイルの在りかを指定する
# 複数指定できる
# --icon: ファイルのアイコンを指定できる 128x128 が最大?
参考