Python Macで動かせるアプリを作る

Python学習【365日チャレンジ!】311日目のマスターU(@Udemy11)です。

ここ数日で一気に朝晩冷え込むようになってきました。

本格的な冬の到来という感じで、釣りに行くのもかなりの寒さ対策が必要になるので、どんどん釣りに行く頻度が落ちていきます。

とはいっても、釣れている釣果情報が入れば釣りに行きたくなるんですけどね。

それでは今日も、Python学習を始めましょう。

昨日の復習

昨日、一昨日と、tkinterを使って、計算機アプリを作成しました。

作成というより、サンプルコードの解説でスムーズにプログラムが動いているような感じだったと思いますが、コードは写経したので、実際はスペルミスなどがあって、なかなかうまく動きませんでした。

自分でコードを理解しながら書いていくと、ある程度プログラミングのコードが書けるようになったと錯覚しちゃうんですが、何もない状態からコードが書けるようになるまでは、まだまだ時間がかかりそうです。

くわしくは、昨日、一昨日の記事をごらんください。

今日は、py2appを使って昨日作成した計算機をMacで使えるようにしてみます。

py2app

PythonファイルからMac上で動くアプリを作ることができるのがpy2appです。

まずは、このpy2appをターミナルでpipインストールしますが、Pythonの実行環境によって、うまく動作しないことがあるらしいので、以前学習したvirtualenv環境下で作業していきます。

ターミナル上で、virtualenv calappを実行して、calappという任意の名前のvirtualenvを作ります。

Python Macで動かせるアプリを作る

次にsource calapp/bin/activateを実行して、環境をアクティベイトしてからpip install py2appを実行して、py2appをインストールします。

Python Macで動かせるアプリを作る

今回pipのバージョンが古いという警告が出たので、ついでにpip install --upgrage pipを実行して、最新バージョンのpipにアップデートしておきました。

これでvirtualenv上でpy2appを使える準備ができたので、calculator.pyからsetup.pyを作成します。

setup.py

Macで使うアプリケーションとして作成した計算機を使うには、作ったcalculator.pyと、Mac上で動かせるようにするためのsetup.pyが必要です。

calculator.pyは、すでに作っているので、一昨日の記事からコードを参照してください。

ということで、まだ作成していないsetup.pyを準備しますが、py2appを使ってcalculator.pyをもとにsetup.pyを作ります。

先程の続きのターミナル上で、lsコマンドを使い、作業フォルダにcalculator.pyがあることを確認します。

Python Macで動かせるアプリを作る

続いて、ターミナル上で、py2applet --make-setup calculator.pyを実行します。

Python Macで動かせるアプリを作る

すると、作業中の階層にsetup.pyが作られるので、再度lsでフォルダ内を確認すると、setup.pyができているのがわかります。

Python Macで動かせるアプリを作る

できたsetup.pyの中身は次のようなコードになっています。

"""
This is a setup.py script generated by py2applet

Usage:
    python setup.py py2app
"""

from setuptools import setup

APP = ['calculator.py']
DATA_FILES = []
OPTIONS = {}

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

最初に、ドキュメンテーションの記述があって、Usagepython setup.py py2appとあるので、ターミナル上でこのコマンドを実行すれば、Mac上でcalculator.pyが動くアプリを作成することができます。

8行目では、Jarvisのレクチャーで学習したsetuptoolsをインポートしています。

10行目でアプリのファイルを指定する変数APPcalculator.pyに指定して、DATA_FILESには空のリスト、OPTIONSには空の辞書型データを指定しています。

14行目以降でセットアップする内容が書かれています。

setup.pyの実行

続いて、ターミナルからドキュメンテーションにあったpython setup.py py2appを実行します。

Python Macで動かせるアプリを作る

py2appを使ってsetup.pyが実行され、最終的にDone!と表示されれば、Mac上でcalculator.pyが動かせるアプリが作成されています。

Macで開く

Finderから、作業中のフォルダを開いて、出来上がったアプリを見てみます。

Python Macで動かせるアプリを作る

Pycharm上では、アプリの中のファイルが表示されいますが、Finderからはフォルダではなくアプリとして認識されているので、パッケージ内は表示されていません。

Finderからcalculator.appをダブルクリックすれば、計算機アプリが起動します。

Python Macで動かせるアプリを作る

マウスを使って計算機を操作してみて、うまく計算されていれば計算機アプリの完成です。

ちなみに、作業していたターミナル上のvirtualenvは、deactivateコマンドを実行すれば終了することができます。

まとめ

PythonからMacで動くアプリケーションをはじめて作りましたが、Pythonのプログラムを実行して動かすのではなく、通常のアプリとして自分が作ったものを動かせるというのはめっちゃテンションが上ります。

これまでは、Pythonのコードを書いて、Pycharmからやターミナルから実行していたので、どうやってMacのアプリのように動かせるのがわかっていませんでした。

それが今回のレクチャーでMacのアプリとして動かせる方法がわかったので、モヤモヤしていたものがちょっとだけ取り除かれた感じがします。

まだ、ようやく入り口にたどり着いたような感じなので、気持ちを引き締めて継続していこうと思います。

それでは、明日もGood Python!