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全般については以下ページで解説しています。



コメント