cx_Freezeを使ってインストーラーを作成する

せっかく作ったゲームなので、普段Pythonを使わない友人や家族にも遊んでもらいたいですよね。

Pythonのcx_Freezeというライブラリを使えば、インストーラーを作成することができます。

cx_Freezeのインストール

まずは、pipを使いcx_Freezeをインストールします。

Windowsであれば、コマンドプロンプトで以下のように入力し、インストールできます。

setup.pyファイルを作成する

cx_Freezeのインストールが成功したら、exe化したいファイルと同じ階層にsetup.pyファイルを作成します。

ここでは、space_rabipple.pyと同じ階層に作成します。

import os
import sys
from cx_Freeze import setup, Executable

base = None
if sys.platform == "win32":
    base = "Win32GUI"

buildOptions = dict(\
    include_files = [\
        os.path.join(os.getcwd(), "data"),\
        os.path.join(os.getcwd(), "libs"),\
        os.path.join(os.getcwd(), "resources")
    ],\

    includes = [\
        "pygame",\
        "os",\
        "sys",\
        "random",\
        "math"
    ])

exe = Executable(\
    script = "space_rabipple.py",\
    base = base,\
    icon = "resources/image/icon.png",\
    shortcutName = "Space Rabipple",\
    shortcutDir = "DesktopFolder"
)

setup(\
    name = "Space Rabipple",\
    version = "1.0",\
    description = "Jizo Games",\
    options = dict(build_exe = buildOptions),\
    executables = [exe]
)

プログラムだけでなく、画像やデータファイルも一緒にexe化したいので、include_filesの中に記述していきます。

includesは、プログラム作成時に使用したライブラリの一覧です。

これらも含めないと、プログラムが動かなくなってしまいます。

exeでは、インストール後にショートカットをデスクトップに作成する、という設定をしています。

setup.pyを実行する

setup.pyファイルを作成したら、さっそく実行してみましょう。

Windowsの場合はコマンドプロンプトから、setup.pyが保存されているディレクトリに移動し、以下のとおり実行します。

実行すると、buildというフォルダと、distというフォルダの二つが作成されます。

distフォルダの中にあるmsiファイルを実行すると、作成したゲームをインストールすることができます。