PythonのプログラムをEXEファイル化して配布できるPyInstallerの使い方について詳しく解説します。
PyInstallerとは
PyInstallerは、Pythonプログラムを実行可能なファイル(exeファイルなど)に変換するためのツールです。
以下に、PyInstallerの基本的な使い方を説明します。
参考:PyInstaller公式ドキュメント
PyInstallerの基本的な使い方
下のコマンドを使用し、PyInstallerをインストールします。
pip install pyinstaller
Pythonスクリプトが保存されているディレクトリに移動します。
以下のコマンドを実行して、Pythonスクリプトを実行可能ファイルに変換します。
pyinstaller your_script.py
distフォルダに実行可能ファイルが生成されます。
buildフォルダにはビルドに関する一時ファイルが生成されます。
your_script.specファイルが生成され、ビルド設定が記述されています。
主要なオプション | 概要 |
---|---|
–onefile | 単一の実行可能ファイルを作成します。 |
–noconsole | コンソールウィンドウを表示しないようにします(GUIアプリケーション向け)。 |
–icon | 実行可能ファイルのアイコンを指定します。 |
–clean | ビルド前にPyInstallerのキャッシュと一時ファイルを削除します。 |
pyinstaller –clean your_script.py
specファイルを活用してビルドする方法
PyInstallerは、ビルド設定を記述したspecファイルを生成します。
このファイルを編集することで、ビルドプロセスをカスタマイズできます。
specファイルの構造
specファイルはPythonスクリプト形式で記述されており、以下のような構造を持っています。
# -*- mode: python ; coding: utf-8 -*- block_cipher = None a = Analysis( ['your_script.py'], pathex=['/path/to/your_script'], binaries=[], datas=[], hiddenimports=[], hookspath=[], runtime_hooks=[], excludes=[], win_no_prefer_redirects=False, win_private_assemblies=False, cipher=block_cipher, noarchive=False, ) pyz = PYZ(a.pure, a.zipped_data, cipher=block_cipher) exe = EXE( pyz, a.scripts, [], exclude_binaries=True, name='your_script', debug=False, bootloader_ignore_signals=False, strip=False, upx=True, upx_exclude=[], runtime_tmpdir=None, console=True, ) coll = COLLECT( exe, a.binaries, a.zipfiles, a.datas, strip=False, upx=True, upx_exclude=[], name='your_script', )
Analysisセクション
Analysisセクションは、ビルドに必要な情報を指定します。
項目 | 概要 |
---|---|
scripts | ビルドするPythonスクリプトのリスト。 |
pathex | スクリプトの検索パス。 |
binaries | 追加のバイナリファイル。 |
datas | 追加のデータファイル。 |
hiddenimports | 自動検出されないインポートモジュール。 |
excludes | 除外するモジュール。 |
PYZセクション
PYZセクションは、Pythonコードを圧縮してアーカイブにします。
項目 | 概要 |
---|---|
a.pure | 純粋なPythonモジュール。 |
a.zipped_data | 圧縮されたデータ。 |
EXEセクション
EXEセクションは、実行可能ファイルの設定を指定します。
項目 | 概要 |
---|---|
pyz | PYZオブジェクト。 |
a.scripts | スクリプト情報。 |
name | 実行可能ファイルの名前。 |
console | コンソールウィンドウを表示するかどうか。 |
COLLECTセクション
COLLECTセクションは、ビルドされたファイルを収集してディストリビューションフォルダに配置します。
項目 | 概要 |
---|---|
exe | EXEオブジェクト。 |
a.binaries | バイナリファイル。 |
a.zipfiles | 圧縮ファイル。 |
a.datas | データファイル。 |
具体的な編集およびビルド例
例えば、追加のデータファイルを含める場合、specファイルをテキストエディタで開き、Analysisセクションのdatasにファイルパスを追加します。
a = Analysis( ['your_script.py'], pathex=['/path/to/your_script'], binaries=[], datas=[('data_file.txt', 'data_file.txt', 'DATA')], hiddenimports=[], hookspath=[], runtime_hooks=[], excludes=[], win_no_prefer_redirects=False, win_private_assemblies=False, cipher=block_cipher, noarchive=False, )
編集したspecファイルを使用してビルドを実行します。
pyinstaller your_script.spec
このように、specファイルを編集することで、ビルドプロセスを細かくカスタマイズできます。
関連ページ
Pygameの使い方については以下ページで解説しています。
Python全般については以下ページで解説しています。
コメント