Pythonプログラムのexe化ガイド
【概要】
PyInstaller(Pythonプログラムを実行可能ファイルに変換するソフトウェア)を使用して,Pythonプログラムを実行可能ファイル(exe)に変換する方法を説明する.この方法により,Python実行環境がないパソコンでもプログラムを実行できるようになる.
【目次】
第1章 特徴と利点
1.1 使用技術の特徴
- PyInstaller:Pythonプログラムを独立した実行可能ファイルに変換するライブラリである.プログラムの実行に必要なすべての依存関係を含めて単一のファイルにパッケージ化する機能を提供する.
- Python(高水準プログラミング言語):シンプルな文法と豊富なライブラリを備えたプログラミング言語である.インストール時に環境変数を設定することで,コマンドプロンプトからの実行が可能になる.
1.2 期待される効果
- プログラムの利便性向上:Python実行環境がないコンピュータでもプログラムを実行できるようになる.利用者は生成された実行可能ファイルを実行するだけでよい.
- 配布の容易化:生成された実行可能ファイルは,Python実行環境のインストールなしで利用可能である.そのため,利用者側での環境構築が不要になる.
第2章 環境構築
動作環境(OS,機材)
- Windows オペレーティングシステム
- Python(バージョン3.12)
- PyInstaller
- テキストエディタ(メモ帳など)
Python 3.12 のインストール
Pythonのインストールを行い、Pythonのプログラムを実行する環境を整える。扱う環境は、Windows搭載パソコンである。金子研究室では、Python 3.12.10を推奨する。
[Windows での Python 3.12 のインストール手順を見るには、ここをクリック]
Windows での Python 3.12 のインストール
以下のいずれかの方法でPython 3.12をインストールする。Pythonがインストール済みの場合、この手順は不要である。
方法 1:winget によるインストール
【インストールコマンドの実行方法】
管理者権限でコマンドプロンプトを起動する(手順:Windowsキーまたはスタートメニュー → cmd と入力 → 右クリック → 「管理者として実行」)。そして、コマンド全体をコマンドプロンプトにコピー&ペーストする。
--scope machine を指定することで、システム全体(全ユーザー向け)にインストールされる。このオプションの実行には管理者権限が必要である。インストール完了後、コマンドプロンプトを再起動するとPATHが反映される。
REM Python 3.12 をシステム領域にインストール
winget install --id Python.Python.3.12 -e --scope machine --silent --accept-source-agreements --accept-package-agreements --override "/quiet InstallAllUsers=1 PrependPath=1 Include_test=0 Include_pip=1 Include_launcher=1 InstallLauncherAllUsers=1 TargetDir=\"C:\Program Files\Python312\""
if not "%ERRORLEVEL%"=="0" ( color 0c & echo Python 3.12 のインストールに失敗しました & ping 127.0.0.1 -n 6 >nul & color )
REM Python と Scripts を PATH 先頭に追加
powershell -NoProfile -Command "$p='C:\Program Files\Python312'; $s=\"$p\Scripts\"; if(Test-Path $p){$k=[Microsoft.Win32.Registry]::LocalMachine.OpenSubKey('SYSTEM\CurrentControlSet\Control\Session Manager\Environment',$true); $c=$k.GetValue('Path','',[Microsoft.Win32.RegistryValueOptions]::DoNotExpandEnvironmentNames); $t=$k.GetValueKind('Path'); $new=$c; if((';'+$new+';') -notlike \"*;$p;*\"){$new=$p+';'+$new}; if((';'+$new+';') -notlike \"*;$s;*\"){$new=$s+';'+$new}; if($new -ne $c){$k.SetValue('Path',$new,$t)}; $k.Close()}"
REM 現在のセッションにも反映(システムPATHを再取得して連結)
for /f "usebackq tokens=2,*" %A in (`reg query "HKLM\SYSTEM\CurrentControlSet\Control\Session Manager\Environment" /v Path`) do set "PATH=%B"
REM pip / wheel の更新
python -m pip install --no-user -U pip wheel
if not "%ERRORLEVEL%"=="0" ( color 0c & echo pip / wheel の更新に失敗しました & ping 127.0.0.1 -n 6 >nul & color )
方法 2:インストーラーによるインストール
- Python公式サイト(https://www.python.org/downloads/)にアクセスし、「Download Python 3.x.x」ボタンからWindows用インストーラーをダウンロードする。
- ダウンロードしたインストーラーを実行する。
- 初期画面の下部に表示される「Add python.exe to PATH」にチェックを入れてから「Customize installation」を選択する。このチェックを入れ忘れると、コマンドプロンプトから
pythonコマンドを実行できない。 - 「Install Python 3.xx for all users」にチェックを入れ、「Install」をクリックする。
インストールの確認
コマンドプロンプトで以下を実行する。
python --version
バージョン番号(例:Python 3.12.x)が表示されればインストール成功である。「'python' は、内部コマンドまたは外部コマンドとして認識されていません。」と表示される場合は、インストールが正常に完了していない。
第3章 プログラムファイルの準備
- コマンドプロンプトを開く(通常モードで良い).Windowsキーを押して「cmd」と入力する.
- cdコマンドでプログラムの保存先に移動する.例えば,保存先をデスクトップにする場合は次のように入力する:
cd Desktop - 以下のコマンドでプログラムファイルを作成する(notepad は「メモ帳」である):
notepad hello.py - 次のプログラムを入力し,Ctrl+Sキーを押して保存する(あるいは,メニューで保存操作を行う):
print("Hello, World!\n")
第4章 PyInstaller の使用方法
- 仮想環境の作成と有効化:
- コマンドプロンプトでプログラムの保存先に移動する.例えば,保存先がデスクトップの場合は次のように入力する:
cd Desktop - 仮想環境(独立したPython実行環境)を作成する:
python -m venv venv - 仮想環境を有効化する:
venv\Scripts\activateコマンドプロンプトの先頭に
(venv)と表示されることを確認する.
- コマンドプロンプトでプログラムの保存先に移動する.例えば,保存先がデスクトップの場合は次のように入力する:
- 必要なパッケージのインストール:
- 仮想環境が有効化されていることを確認する(プロンプトの先頭に
(venv)が表示されている). - PyInstallerをインストールする:
pip install -U --no-user pyinstaller
- 仮想環境が有効化されていることを確認する(プロンプトの先頭に
- Pythonプログラムの動作確認:
- 仮想環境が有効化されていることを確認する(プロンプトの先頭に
(venv)が表示されている). - プログラムを実行する:
python hello.py
- 仮想環境が有効化されていることを確認する(プロンプトの先頭に
- 実行可能ファイルの生成:
- 仮想環境が有効化されていることを確認する.
- PyInstallerでexeファイルを生成する:
pyinstaller --onefile hello.py
- 実行可能ファイルの動作確認:
distディレクトリに移動する:cd dist- 生成された実行可能ファイルを実行する:
hello.exe
- 作業完了後:
- 仮想環境を無効化する:
deactivate
- 仮想環境を無効化する:
第5章 パラメータ設定
PyInstallerのコマンドラインオプション:
--onefile:すべての依存関係を含む単一の実行可能ファイルを生成する(推奨)--noconsole:コンソールウィンドウを非表示にする(グラフィカルユーザーインターフェースを持つアプリケーションの場合に使用)--icon=path/to/icon.ico:実行可能ファイルにアイコンを設定する(アイコンファイルへのパスを指定)--name=プログラム名:生成される実行可能ファイルの名前を指定する
第6章 出力データ
6.1 生成されるファイル
hello.py:作成したPythonプログラムファイルhello.spec:PyInstallerの設定ファイル(実行可能ファイルの生成設定を含む)buildディレクトリ:ビルド時の中間ファイルdistディレクトリ:生成された実行可能ファイル
第7章 トラブルシューティング
7.1 PyInstallerのエラー
- 「pip is not recognized」エラーが表示される場合:
- Pythonのインストーラを再度実行し,「Add python.exe to PATH」(Pythonを環境変数PATHに追加する項目)にチェックを入れて再インストールする.
- コマンドプロンプトを開き直し,
pip --versionでpipが認識されるか確認する. - その後,PyInstallerのインストールを再試行する.
- モジュールが見つからないエラーが発生する場合:
- 仮想環境が有効化されていることを確認する(プロンプトの先頭に
(venv)が表示されている). - 次のコマンドで必要なモジュールをインストールする:
pip install -U --no-user モジュール名 - PyInstallerを再実行する.
- 仮想環境が有効化されていることを確認する(プロンプトの先頭に
7.2 実行可能ファイルの問題
- DLLエラーが発生する場合:
- Visual C++ Redistributableをインストールする.
- Windowsを再起動する.
- 実行可能ファイルを再度生成する.