この記事では、Py2exeというツールを使ってPythonスクリプトをWindows実行ファイルに変換する方法を紹介します。
Py2exeで使用できるキーワードやオプションについて解説し、それらを使ったサンプルコードも提供します。
初心者の方でもわかりやすく、実際のプログラム作成に役立つ内容です。
Py2exeで使用できるキーワード
Py2exeは、Pythonスクリプトを実行可能なWindows実行ファイルに変換するためのツールです。
Py2exeを使用する際には、いくつかのキーワードを指定することができます。
以下に、Py2exeで使用できるキーワードを紹介します。
console
console
キーワードは、コンソールアプリケーションとして実行可能ファイルを作成するために使用されます。
このキーワードを指定すると、Pythonスクリプトがコマンドプロンプト上で実行されるようになります。
windows
windows
キーワードは、ウィンドウベースのアプリケーションとして実行可能ファイルを作成するために使用されます。
このキーワードを指定すると、PythonスクリプトがGUIアプリケーションとして認識され、コンソールウィンドウが非表示になります。
service
service
キーワードは、Windowsサービスとして実行可能ファイルを作成するために使用されます。
このキーワードを指定すると、PythonスクリプトがWindowsサービスとして動作させられるようになります。
com_server
com_server
キーワードは、COMサーバーとして実行可能ファイルを作成するために使用されます。
このキーワードを指定すると、PythonスクリプトがCOMオブジェクトとして他のプログラムから利用できるようになります。
ctypes_com_server
ctypes_com_server
キーワードは、ctypesを使用してCOMサーバーを作成するために使用されます。
このキーワードを指定すると、Pythonスクリプトがctypesを介してCOMオブジェクトとして他のプログラムから利用できるようになります。
zipfile
zipfile
キーワードは、実行可能ファイルにPythonスクリプトと必要なモジュールをZIPアーカイブとして含めるために使用されます。
このキーワードを指定すると、実行可能ファイルのサイズを小さくすることができますが、起動時にアンパック処理が入るため、起動時間が少し長くなります。
options
options
キーワードは、Py2exeのさまざまなオプションを指定するために使用されます。
オプションには、コンパイルオプションやファイルの配置オプションなどがあります。
詳細なオプションはこの後紹介していきます。
Py2exeで使用できるオプション
Py2exeは、Pythonスクリプトを実行可能なWindows実行ファイルに変換するためのツールです。
Py2exeを使用する際には、さまざまなオプションを指定することができます。
以下では、Py2exeで使用できる主なオプションについて説明します。
unbuffered
unbuffered
オプションは、標準入出力をバッファリングせずに処理するためのオプションです。
バッファリングを無効にすることで、リアルタイムでの入出力が可能になります。
optimize
optimize
オプションは、生成される実行ファイルの最適化レベルを指定するためのオプションです。
最適化レベルは0から2までの整数で指定します。
最適化レベルが高いほど、実行ファイルのサイズは小さくなりますが、実行速度は低下する可能性があります。
includes
includes
オプションは、実行ファイルに含める追加のモジュールを指定するためのオプションです。
指定したモジュールは、実行ファイルに組み込まれ、実行時に必要ないくつかのモジュールを省略することができます。
packages
packages
オプションは、実行ファイルに含める追加のパッケージを指定するためのオプションです。
指定したパッケージは、実行ファイルに組み込まれ、実行時に必要ないくつかのパッケージを省略することができます。
ignores
ignores
オプションは、実行ファイルに含めないモジュールを指定するためのオプションです。
指定したモジュールは、実行ファイルに含まれず、実行時に必要ないくつかのモジュールを省略することができます。
excludes
excludes
オプションは、実行ファイルに含めないパッケージを指定するためのオプションです。
指定したパッケージは、実行ファイルに含まれず、実行時に必要ないくつかのパッケージを省略することができます。
dll_excludes
dll_excludes
オプションは、実行ファイルに含めないDLLファイルを指定するためのオプションです。
指定したDLLファイルは、実行ファイルに含まれず、実行時に必要ないくつかのDLLファイルを省略することができます。
dist_dir
dist_dir
オプションは、生成される実行ファイルの出力先ディレクトリを指定するためのオプションです。
デフォルトでは、カレントディレクトリに実行ファイルが出力されますが、dist_dir
オプションを使用することで、任意のディレクトリに出力することができます。
typelibs
typelibs
オプションは、COMタイプライブラリを指定するためのオプションです。
COMタイプライブラリは、COMオブジェクトを使用する際に必要となる情報を含んでいます。
compressed
compressed
オプションは、実行ファイルを圧縮するためのオプションです。
圧縮することで、実行ファイルのサイズを小さくすることができますが、実行速度は低下する可能性があります。
xref
xref
オプションは、実行ファイルにクロスリファレンス情報を含めるためのオプションです。
クロスリファレンス情報は、実行ファイルのデバッグや解析に役立ちます。
bundle_files
bundle_files
オプションは、実行ファイルに関連ファイルをバンドルするためのオプションです。
関連ファイルは、実行ファイルと一緒に配布され、実行時に必要なファイルをまとめて提供することができます。
skip_archive
skip_archive
オプションは、実行ファイルのアーカイブ化をスキップするためのオプションです。
アーカイブ化をスキップすることで、実行ファイルの展開時間を短縮することができます。
ascii
ascii
オプションは、実行ファイルの文字セットをASCIIに制限するためのオプションです。
ASCII以外の文字が含まれる場合、エラーが発生します。
custom-boot-script
custom-boot-script
オプションは、カスタムのブートスクリプトを指定するためのオプションです。
ブートスクリプトは、実行ファイルの起動時に実行されるスクリプトです。
以上が、Py2exeで使用できる主なオプションの一部です。
これらのオプションを適切に指定することで、Py2exeをより効果的に利用することができます。
オプションやキーワードを使ったサンプルコード
以下は、Py2exeで使用できるオプションやキーワードを使ったサンプルコードの一部です。
console
from distutils.core import setup
import py2exe
setup(console=['script.py'])
このコードでは、console
キーワードを使用して、コンソールアプリケーションとして実行可能ファイルを作成しています。
windows
from distutils.core import setup
import py2exe
setup(windows=['script.py'])
windows
キーワードを使用すると、ウィンドウアプリケーションとして実行可能ファイルを作成することができます。
service
from distutils.core import setup
import py2exe
setup(service=['script.py'])
service
キーワードを使用すると、Windowsサービスとして実行可能ファイルを作成することができます。
com_server
from distutils.core import setup
import py2exe
setup(com_server=['script.py'])
com_server
キーワードを使用すると、COMサーバーとして実行可能ファイルを作成することができます。
ctypes_com_server
from distutils.core import setup
import py2exe
setup(ctypes_com_server=['script.py'])
ctypes_com_server
キーワードを使用すると、ctypesを使用したCOMサーバーとして実行可能ファイルを作成することができます。
zipfile
from distutils.core import setup
import py2exe
setup(zipfile='library.zip', windows=['script.py'])
zipfile
キーワードを使用すると、実行可能ファイルと依存するファイルを1つのZIPアーカイブにまとめることができます。
options
from distutils.core import setup
import py2exe
options = {
'py2exe': {
'bundle_files': 1,
'compressed': True,
'optimize': 2
}
}
setup(options=options, windows=['script.py'])
options
キーワードを使用すると、さまざまなオプションを指定することができます。
上記の例では、bundle_files
オプションを使用してすべてのファイルを1つの実行可能ファイルにバンドルし、compressed
オプションを使用して圧縮し、optimize
オプションを使用して最適化レベルを指定しています。
以上が、Py2exeで使用できるオプションやキーワードを使ったサンプルコードの一部です。
これらのコードを参考にして、Py2exeを使ったプログラムの実行可能ファイルを作成してみてください。