【PyInstallerの使い方まとめ】PythonのプログラムをEXEファイル化して配布

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

【Pygame超入門】使い方とサンプルゲームを解説
Pygameで2Dゲームを簡単に制作する方法を入門者向けに解説します。

Python全般については以下ページで解説しています。

【Python超入門】使い方とサンプル集
Pythonの使い方について、基礎文法から応用例まで入門者向けに解説します。

コメント