kiviによるマルチプラットフォームのアプリ生成手順

  • 3
    Like
  • 0
    Comment

前回のまとめ

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

ってログが出力されたら、できたことになるらしい。
builddist ってフォルダができておられる。

一応できましたけど、中身は起動するようなアプリじゃないので、とりあえず作れるよ、というところまでですね。
中身はこの記事以降で頑張ります。

やってみた感じ、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アプリの生成を行いたいと思います。
オラ、ワクワクしてきたぞ!

iOSとかAndroidはまた今度の機会にやってみましょうかね。
だいたい似たような感じでビルドできるようです。