概要
- cx_Freezeのモジュールを用いて、Pythonプログラムをexe化する方法を記載
- cx_Freezeの詳細は以下を参照のこと
- CUI(コマンドプロンプト、ターミナルなど)操作でpythonを実行できる前提で記載
インストール
-
cx_Freezeは、pip、condaどちらでもインストール可能
pip install --upgrade cx_Freeze
conda install conda-forge::cx_freeze
実行
-
Exe化する方法は大きく3通りあるが、個人的に使用しやすいsetupスクリプトを使用する方法を示す
-
Exe化の方法
-
cx_Freezeのsetupファイルは以下で作成できる
手順
1. exe化したいpythonファイルの場所までコマンドプロンプトで移動
2. 以下のコマンドを実行
cxfreeze-quickstart
3. 指示に従い、回答する
- Project name: 任意のプロジェクト名を入力
- Version: バージョンを入力
- Description: 本プロジェクトの説明を記載
- Python file to make executable from: 実行ファイルを作成するpythonファイルを記載
- Executable file name: 実行ファイル名
- Console, Gui, Serviceを選択:C/G/S
- 保存するセットアップファイル名を記載:ファイル名
- build(exe化)このままするか?:y/n
4. 必要に応じて、setup.pyの中身を確認する
-
build_optionsは、ある程度自動的に認識してくれるが、exe化後にパッケージやモジュールがないなどのエラーが表示される場合は、'packages', 'includes'に明示する。
-
'include_files'は、exe化したフォルダにコピーするファイル
-
その他の詳細は以下
-
setup.pyファイルの例
from cx_Freeze import setup, Executable # Dependencies are automatically detected, but it might need # fine tuning. build_options = { 'packages': ['pyautogui', 'pygetwindow', 'pynput'], 'excludes': [], 'include_files': ['setting.txt'] } base = 'console' executables = [ Executable('hoge.py', base=base) ] setup(name='hoge', version = '1.0', description = '', options = {'build_exe': build_options}, executables = executables)
5. exe化(build)
-
exe+dlls(portableなexeファイル/フォルダ作成)の場合は、以下を実行すれば、buildのフォルダ下層にexeファイルが作成される
python setup.py build
-
msi(Windowsのインストーラ作成)の場合は、以下を実行すれば、distフォルダ内にmsiファイルが作成される
python setup.py bdist_msi
その他
exe化する他のモジュールは以下など。
- Pyinstaller
- py2exe