cx_Freezeを使うことで、PythonプログラムをWindows環境でならどこでも動かすことができるexeファイルに変換することができます。
ですが、Pythonでプログラミングを行う際、2つ以上のファイルに分けて開発することも多いでしょう。
そこで今回は、2つ以上の複数の操作ファイルを使って開発していた場合に、cx_Freezeを使ってexeファイルを作成する方法について紹介していきます。
プロジェクトのディレクトリ構成
プロジェクトを始める前に、まずは適切なディレクトリ構成を作ることが重要です。
以下は一般的なプロジェクトのディレクトリ構成の例です。
project/
├── src/
│ ├── main.py
│ ├── module1.py
│ └── module2.py
└── build/
この例では、プロジェクトのルートディレクトリにproject
というディレクトリを作成し、その中にsrc
ディレクトリとbuild
ディレクトリを作成しています。
src
ディレクトリにはプロジェクトのメインファイルであるmain.py
と、他のモジュールファイルであるmodule1.py
とmodule2.py
を配置します。
build
ディレクトリは、後ほどsetup.py
を実行して生成されるexeファイルを格納するためのディレクトリです。
必要なソースファイルの作成
プロジェクトのディレクトリ構成ができたら、次は必要なソースファイルを作成します。
まず、main.py
というファイルを作成し、以下のような内容を記述します。
# main.py
import module1
import module2
def main():
module1.say_hello()
module2.say_goodbye()
if __name__ == "__main__":
main()
また、module1.py
とmodule2.py
というファイルも作成し、それぞれ以下のような内容を記述します。
# module1.py
def say_hello():
print("Hello from module1!")
# module2.py
def say_goodbye():
print("Goodbye from module2!")
これで、プロジェクトに必要なソースファイルが作成されました。
setup.pyファイルの作成
次に、setup.py
というファイルを作成します。
このファイルは、cx_Freezeを使ってexeファイルを生成するために必要な設定を行うためのファイルです。
# setup.py
import sys
from cx_Freeze import setup, Executable
# ビルド対象のスクリプトファイルを指定
target_script = "src/main.py"
# exeファイルの設定
exe = Executable(
script=target_script,
base="Win32GUI" if sys.platform == "win32" else None
)
# セットアップの設定
setup(
name="MyProject",
version="1.0",
description="My Project Description",
executables=[exe]
)
target_script
には、ビルド対象のスクリプトファイルのパスを指定します。
上記の例では、src/main.py
がビルド対象のスクリプトファイルとなっています。
そのため、プロジェクトを構成する操作ファイルの数が増えても、ソースコード内でインポート文を正しく記述するだけでしっかり認識してくれます。
setup.pyを実行してexeファイルを生成する
準備が整ったら、setup.py
を実行してexeファイルを生成します。
ターミナルやコマンドプロンプトを開き、プロジェクトのルートディレクトリに移動してから以下のコマンドを実行します。
python setup.py build
これにより、build
ディレクトリ内にexeファイルが生成されます。
以上が、cx_Freezeを使って複数のソースファイルを使ってexeファイルを生成する方法です。
ソースファイルが増えたからといって特別な設定をsetup.pyにする必要はなく、自動的に読み込んでくれるので、1ファイルのビルどの時と同じように、cx_Freezeでexe化するといいでしょう。