前回のまとめ
kivyの導入はできた。 (完)
早くも不定期連載の2回目になります。
今回やりたいこと
拡張子appを作ったり、拡張子exeを作ったりして、ワンクリックで起動したい!
もしくは起動できなくても、生成できるところまでは辿りつきたい!
またもや事前準備
appやexeを作るためにはbuildozerやpyinstallerというものが必要だそうです。
ほう…どうやって使うのか見せてもらおうか。
と思ったので、下記の記事をご覧ください。
Creating packages for OS X
Create a package for Windows
それぞれの環境について、書くのであれば、下記のような感じだそうです。
Mac OS
Mac OSの環境なので、Mac OSのアプリ作成 は簡単なよう です。
下記を実行すれば、buildozerをインストールできます。
pip install git+http://github.com/kivy/buildozer cd /to/where/I/Want/to/package buildozer init
$ pip install git+http://github.com/kivy/buildozer cd /to/where/I/Want/to/package buildozer init
Invalid requirement: '/to/where/I/Want/to/package'
It looks like a path. Does it exist ?
???
!?
cd /to/where/I/Want/to/package
っておい!
改めてこちらを実行ください
pip install git+http://github.com/kivy/buildozer
動作確認
前回のサンプルを使います。
$ python xxx.py
$ buildozer osx release
その結果がこちら。
$ buildozer osx release
# Ensure build layout
No buildozer.spec found in the current directory. Abandon.
$ buildozer osx debug
# Ensure build layout
No buildozer.spec found in the current directory. Abandon.
debugするにしろ、releaseするにしろ、.specファイルが必要らしいです。
情報をもらおうと思って、サイトを辿ること1分ほど。
pip install -U pyinstaller
っていうのが見つかるので、実行しておきます。
そして、これを叩け、と言われた気がするので、実行してみます。
pyinstaller -y --clean --windowed --name touchtracer \
--exclude-module _tkinter \
--exclude-module Tkinter \
--exclude-module enchant \
--exclude-module twisted \
./xxx.py
ログが流れておられる…ドキドキ。
22442 INFO: moving BUNDLE data files to Resource directory
ってログが出力されたら、できたことになるらしい。
build
と dist
ってフォルダができておられる。
一応できましたけど、中身は起動するようなアプリじゃないので、とりあえず作れるよ、というところまでですね。
中身はこの記事以降で頑張ります。
やってみた感じ、kiviをコマンドラインで起動するために学ぶのと、kiviから生成してアプリが使えるようになる記述は別っぽいですね。
最終目標は、マルチプラットフォームでアプリを作る、ということですので、後者を学んでいかなくてはならないようです。
Windows
続いて windowsですが、windowsは、実はpyinstallerがあれば良いらしいのですが、もうすでに導入済みです。
ということは何をすればよろしいんでしょう?
と、調べてみると、ものの数秒で答えが見つかりました。
動作確認
python -m PyInstaller --name touchtracer ./xxx.py
もしくは
python -m PyInstaller --name touchtracer --icon ./icon.ico ./xxx.py
で良いとのこと。
build/touchtracer/の中に touchtracer
が存在しました。
Macより楽勝じゃん。
最後に
次回は、windowsでもmacでも動く、コマンドライン不要のkivyアプリの生成を行いたいと思います。
オラ、ワクワクしてきたぞ!