インストール
PowerShell・ターミナルに下記を入力する。
pip install pyinstaller
基本的な使い方
1.シンプルな使用方法
PowerShell・ターミナルに下記を入力する。
pyinstaller ファイル名.py
or
pyinstaller "C:User\user\sample\ファイル名.py"
これにより、dist/sample/
フォルダに実行可能ファイルが作成される。
2.単一ファイルとして出力
PowerShell・ターミナルに下記を入力する。
pyinstaller --onefile ファイル名.py
or
pyinstaller --onefile "C:User\user\sample\ファイル名.py"
すべてを1つの実行可能ファイルにまとめる。
3.ウィンドウを表示しない(バックグラウンド実行)
PowerShell・ターミナルに下記を入力する。
pyinstaller --noconsole ファイル名.py
or
pyinstaller --noconsole "C:User\user\sample\ファイル名.py"
GUIアプリケーションでコンソールウィンドウを非表示にしたい場合に使用します。
4.応用
PowerShell・ターミナルに下記を入力する。
pyinstaller --onefile --noconsole ファイル名.py
or
pyinstaller --onefile --noconsole "C:User\user\sample\ファイル名.py"
GUIアプリケーションでコンソールウィンドウを非表示にしたい場合に使用します。
よく使用するオプション
--onefile
または-F
:単一の実行可能ファイルを作成--windowed
または-w
: コンソールウィンドウを非表示(GUIアプリ用)--noconsole
: コンソールを表示しない--icon=icon.ico
: アイコンファイルを指定--name=app_name
: 出力ファイル名を指定--distpath=DIR
: 出力先ディレクトリを指定--workpath=DIR
: 作業用ディレクトリを指定
使用例
# GUIアプリを単一ファイルで、アイコン付きで作成
pyinstaller --onefile --windowed --icon=myicon.ico --name=MyApp my_gui_app.py
# 特定のディレクトリに出力
pyinstaller --onefile --distpath=./release my_script.py
トラブルシューティング
よくある問題と解決策
- モジュールが見つからないエラー
PowerShell・ターミナルに下記を入力する。
pyinstaller --hidden-import=missing_module your_script.py
- ファイルサイズが大きすぎる場合
PowerShell・ターミナルに下記を入力する。
pyinstaller --exclude-module=unused_module your_script.py
- 実行時にファイルが見つからない
python
# スクリプト内でリソースファイルのパスを動的に取得
import sys
import os
def resource_path(relative_path):
try:
base_path = sys._MEIPASS
except Exception:
base_path = os.path.abspath(".")
return os.path.join(base_path, relative_path)
# 使用例
data_file = resource_path("data.txt")
実践的な例
# 完全なGUIアプリケーションの例
pyinstaller \
--onefile \
--windowed \
--icon=app_icon.ico \
--name=MyApplication \
--add-data "resources/*;resources" \
--hidden-import=requests \
main.py
まとめ
PyInstallerは非常に便利なツールだが、作成された実行ファイルは元のPythonスクリプトよりもサイズが大きくなることに注意すること。
また、一部の複雑な依存関係では手動での調整が必要な場合もある。
コメント