前回、kivyを使うためにはいろんな環境が必要ということがわかりました。
ということで、各環境を構築して用意してみよう、という記事になります。
利用環境
CentOSならサクッと終わるだろ、と思ってたら、意外と大変な事実に気づかされてしまいました。
Cythonとかどうやってインストールするのか知らないレベルの人ですよ。
Linux環境(CentOS7版)
Ubuntu?Gentoo?Fedora?
CentOS7美味しいレス(^q^)
とか思ってたら、先ほどの通り、Cythonのインストールでorzってなってるアカウントがこちらです。
とりあえずCythonのインストールはみんな通る道のようなのですが、あえて先人たちの知恵はスルーして(ぉぃ)自力でインストールします。
そんなもんpipで入るやろ、とか思って気軽に試すと、こうなりました。
$ pip install cython
bash: pip: コマンドが見つかりませんでした...
おーい。ちくしょうー。pipもねー環境なのかよ、CentOSってザコは。
と愚痴を垂れても仕方ないので、下記の通りコマンドを実行して推し進めていきます。
$ sudo yum install epel-release
$ sudo yum install python-pip SDL2 SDL2_ttf SDL2_image SDL2_mixer gstreamer python-devel freeglut-devel
$ sudo pip install pip setuptools --upgrade
$ sudo pip install Cython
$ sudo pip install kivy pygame
他にも必要なライブラリあるかもしれませんが、2017年2月16日時点はこれでうまく行きました。
$ sudo pip install kivy
Requirement already satisfied: Kivy-Garden>=0.1.4 in /usr/lib/python2.7/site-packages (from kivy)
Requirement already satisfied: requests in /usr/lib/python2.7/site-package (from Kivy-Garden>=0.1.4->kivy)
Installing collected packages: kivy
Running setup.py install for kivy ... done
Successfully installed kivy-1.9.1
初期のMacにkivyを導入した時と同様動作するかどうか軽くチェックします。
python xxxx.py
※ コードは末尾のおまけを参照
動作確認までOKでした。
次は、pyinstallerでビルドです。
python -m PyInstaller --name xxxx ./xxxx.py
これでビルドまで通りました。
実行もOKでした。
実 行 も O K で し た o r z
やっぱりかー、やっぱりそうですよねー。
環境毎に必要なのか…開発者泣くよ?
Window環境(Windows10 Pro)
基本的には、下記のインストール手順で進められましたが、ちょいちょい引っかかるところがあったので注意書きします。
詰まったところとしては、3箇所です。
- python3.x以降使うようになっている
- CythonのインストールにMicrosoft Visual C++ 14.0が必要で、Microsoft Visual C++ Build Toolsを使う。
- kivyのインストールにCythonが必要なので、python -m pip install cythonを実行する
- kivyのインストールにglewが必要なので、http://glew.sourceforge.net/からglewをインストールする
※ glewのインストール方法をまともに解説してるサイトがなく、glewをpythonのフォルダにインストールしてもリンクエラーになるので、お手上げすることにしました。
動いたら教えてください。再度チャレンジします。
Linux、Macがマジ神環境です。
おまけ
kivyの動作確認に利用したコード
import kivy
kivy.require('1.0.6')
from kivy.app import App
from kivy.uix.label import Label
class MyApp(App):
def build(self):
return Label(text='Hello world')
if __name__ == '__main__':
MyApp().run()
※ Macの時は必要だったimport importlib
がLinuxでは不要でしたので、やはり部分的に環境依存が生じるようです。
まとめ
疲れた。。。
マルチプラットフォーム開発ができるぞー、と喜んで開発環境構築してましたけど、Windowsの開発環境が全くわかりませんでした。
元Windowsユーザなのに。
MacやLinuxでの開発に比べると、Windowsの開発って結構煩わしいのかもしれません。
というか、MacやLinuxの開発環境の方が出揃ってる感じがしますね。
Windowsユーザに当分の間、戻ることはなさそうです。