Pythonファイルからappファイルを作る方法

appファイル プログラミング
Photo by Tim van der Kuip on Unsplash

Pythonで作ったプログラムをappファイルにして誰かに使ってもらいたいことがあると思います。

そこで今回は、「py2app」を使ってPythonからappファイルを作る方法をご紹介します。

py2appのインストール

まずは、ターミナルに次のコマンドを入力して「py2app」をインストールします。

pip3 install -U py2app

Pythonファイルのディレクトリに移動

ターミナルから、appファイルにしたいPythonファイルがあるディレクトリに移動します。

cd appファイルにしたいPythonファイルがあるディレクトリのパス

ここからは「appファイルにしたいPythonファイル」のことを「目的ファイル」と呼んでいきます。

setup.pyの作成

「setup.py」というappファイルを作成します。このファイルは、appファイルの作成に関して設定をするためのファイルです。

py2applet --make-setup 目的ファイルのファイル名

「Wrote setup.py」の表示とともに、現在いるディレクトリに「setup.py」が作られていれば大丈夫です。

setup.pyの設定

目的ファイルの中で、特に他のファイルを参照していなければこの設定は飛ばしても大丈夫です。

画像ファイルや音声ファイルなどのことです。

setup.pyを書き換えるときは次のコマンドを入力します。

nano setup.py

setup.pyを開くと「DATA_FILES」というリストがあります。

そこに目的ファイル内で参照しているファイルのファイル名を追加します。

from setuptools import setup

APP = ['目的ファイルのファイル名']
DATA_FILES = [ここに追加する参照しているファイルのファイル名を追加します]
OPTIONS = {}

setup(
    app=APP,
    data_files=DATA_FILES,
    options={'py2app': OPTIONS},
    setup_requires=['py2app'],
)

注意する点としては、ファイル名は文字列で追加することです。

「image.jpg」と「music.mp3」というファイルであれば次のようになります。

DATA_FILES = ['image.jpg', 'music.mp3']

setup.pyの設定が終わったら、次の順番にキーを押して編集画面から抜けてくださいい。

  1. control+x
  2. y
  3. Return

ビルドのテスト

まずこれからやるのはビルドのテストです。

この段階ではappファイルは作れますが、作成したパソコン上でしか動作しません。

ターミナルから、次のコマンドを入力してください。

python3 setup.py py2app -A

目的ファイルと同じディレクトリに「buil」と「dist」という名前の2つのフォルダ作られると思います。

distフォルダの方を開くとそこにテスト段階のappファイルがあります。

このappファイルを起動して正常に動くことを確認します。

正常に動かなかった場合

もしも正常に動かなかったら、appファイルをコンソールで動かして原因を見つけます。

appファイルを左クリックして「パッケージの内容を表示」を選択します。

パッケージの内容が表示されたら「Contentsフォルダ > MacOSフォルダ」のように選択していきます。

MacOSフォルダの中に目的ファイルと同じ名前のファイルがあります(.py拡張子ついていないと思います)

そのファイルをダブルクリックすると、ターミナルが起動します。

表示されたエラーを確認してください。

エラー箇所を訂正したら、buildフォルダとdistフォルダを削除して、ターミナルからもう一度次のコマンドを入力します。

python3 setup.py py2app -A

正常に動くまでこれを繰り返します。

本番のビルド

ここから他のパソコンでも動くappファイルを作っていきます。

先ほど作ったbuildフォルダとdistフォルダがある状態で、ターミナルから次のコマンドを入力します。

rm -rf build dist

すると、buildフォルダとdistフォルダが消えます。

その後、次のコマンドを入力します。

python3 setup.py py2app

しばらくすると、もう一度buildフォルダとdistフォルダが作成されます。

distフォルダの中に入っているappファイルが正常に動けば完了です。

コメント

タイトルとURLをコピーしました