Mac用アプリをpy2appとPython3を使って作ろう!!
始めに
今回は前回の記事で作成したpythonのプログラムがあるのですが、風の噂でPythonのアプリ化がpy2appを使うと簡単に出来ると言う事で実際にアプリ化してやろうと言う魂胆です。是非最後までお楽しみ下さいm(_ _)m
✳︎この記事はPython3,Tkinter,pip3がインストールされている前提で話を進めます
アプリ化するメリットとは?
プログラムを実行するのは簡単なのに何故アプリ化をする必要があるのかと思った人もいるのでは無いでしょうか?僕が考える理由は二つです。その1:アプリ化する事で共有が簡単になる.その2:配布する事が簡単になります。
アプリ化の手順
ステップ1
アプリ化するにはプログラムが無いとお話になりません。なのでTkinterを使ったPythonのコードを用意しましょう。よければこれをお使い下さい。ですが、前回の記事のコメントの方で自分より綺麗なコードを載せてくれている人が居たのでそちらの方が書いた物を参考にすると良いと思います。
import tkinter as tk
import random
# ボタンが押された時の処理
def dice(event):
# ランダムな整数を生成して、labelの内容を書き換える
value["text"] = random.randint(1,6)
root = tk.Tk()
root.title("Dice.app")
root.geometry('200x150')
value = tk.Label(text="0",font=("",80))
value.pack(fill = 'x', padx=20, side = 'top')
Btn = tk.Button(text='サイコロをふる',width=10)
Btn.bind("<Button-1>", dice)
Btn.pack(fill = 'x', padx=20, side = 'top')
root.mainloop()
ステップ2
appというフォルダを作成して、先ほどプログラムファイルをappの中に入れて下さい。次にterminalを出して次のコマンドを打って下さい
pip3 install py2app
これでpy2appのインストールは完了です。
次にターミナルでappのフォルダ内に移動して、次のコマンドを打って下さい(diceの部分は自分の保存したファイルの名前にして下さい)
py2applet --make-setup dice.py
このコマンドでsetup.pyを生成します。
ステップ3
次にicnsイメージを用意します。このイメージがアプリのアイコンになります。まずは適当な画像を用意します。僕はこのサイトの写真を使わせて貰いました。次にImage2iconと言うアプリをダウンロードして下さい。このアプリでicnsイメージを作成します。
インストールできたらアプリを起動してアイコンにしたい画像をドラックアンドドロップします。その後書き出すのボタンからICNSを選択したら保存場所をappに指定して、ICNSが出来るのを待ちましょう。
ステップ4
setup.pyを開いて次のように変更して下さい(APPの所は自分の作ったプログラムの名前を、OPTIONSの所はdice.icnsのところは自分のicnsファイルの名前に変更)
"""
This is a setup.py script generated by py2applet
Usage:
python setup.py py2app
"""
from setuptools import setup
APP = ['dice.py']
DATA_FILES = []
OPTIONS = {'iconfile': 'dice.icns'}
setup(
app=APP,
data_files=DATA_FILES,
options={'py2app': OPTIONS},
setup_requires=['py2app'],
)
最後にterminalでこのコマンドを叩いで終わりです。
python3 setup.py py2app
これでアプリは完成です。実際のアプリはappフォルダのdistに保存されています!
最後に
自分はXcodeでのアプリ開発しかやった事しか無かったのでこんなに一瞬でアプリが作れてびっくりしました。
みなさんもぜひアプリを作ってみて下さい!!
✳︎この記事を書いているのはプログラム初心者なので気軽にコメントして下さい
Author And Source
この問題について(Mac用アプリをpy2appとPython3を使って作ろう!!), 我々は、より多くの情報をここで見つけました https://qiita.com/lot-uni/items/c84ca9ddd567d95eaa25著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .