Kivy
いしたーくんにやりませんかって言われて,とりあえず触ってみた感想というか.
触ってみたというよりはほぼインストールしただけですね.とりあえずそこまでの手順です.
Kivy
Open source Python library for rapid development of applications that make use of innovative user interfaces, such as multi-touch apps.
Kivy: Crossplatform Framework for NUI
目次
- Python環境構築
- 必要のないモジュールをアンインストール
- 入っていたモジュール
- アンインストール
- virtualenvで仮想環境
- インストールと設定
- 使い方
- 必要のないモジュールをアンインストール
- Kivy導入
- インストール
- Cython
- Pygame
- Kivy
- インストール
- Kivyを使ってみる
Python環境構築
といっても,Python自体はHomebrewでもういれてあったので,それからのお話です.
ちなみにPythonのインストールはbrew installしただけ.
必要のないモジュールをアンインストール
グローバルのPythonに何故かモジュールがたくさん入っていたので,とても気になったのでそれらをアンインストールするところから始めることにしました.
入っていたモジュール
- Cython==0.20.1
- Jinja2==2.7.2
- List==1.3.0
- MarkupSafe==0.19
- PyRSS2Gen==1.1
- Pygments==1.6
- Sphinx==1.2.2
- Twisted==13.2.0
- altgraph==0.11
- backports.ssl-match-hostname==3.4.0.2
- bdist-mpkg==0.5.0
- bonjour-py==0.3
- cffi==0.8.2
- cryptography==0.2.2
- docutils==0.11
- ipython==1.2.1
- macholib==1.6
- matplotlib==1.1.1
- modulegraph==0.11
- nose==1.3.1
- numpy==1.8.0
- pandas==0.13.1
- patsy==0.2.1
- pika==0.9.13
- pip-tools==0.3.4
- py2app==0.8
- pyOpenSSL==0.14
- pycparser==2.10
- pymc==2.3.2
- pyparsing==2.0.1
- python-dateutil==2.2
- pytz==2013.9
- pyzmq==14.0.1
- readline==6.2.4.1
- scikit-learn==0.14.1
- scipy==0.13.3
- six==1.5.2
- statsmodels==0.5.0
- stevedore==0.14.1
- tornado==3.2
- vboxapi==1.0
- virtualenv==1.11.4
- virtualenv-clone==0.2.4
- virtualenvwrapper==4.2
- wsgiref==0.1.2
- xattr==0.7.4
- zope.interface==4.1.0
それにしてもなんでこんなにたくさん入っていたのかは疑問でならないのですが,多分何か使って一括導入したんだろうなと思います.ただ参考にした記事が不明なのでどうやったのかわかりません.
アンインストール
参考:Python - pipでインストールしたモジュールを全て削除 - Qiita
$ pip freeze > piplist.txt $ sudo pip uninstall -r piplist.txt
virtualenvで仮想環境
グローバルのPythonは2.x系なのですが,3.x系のPython上でKivyを動かしたいなぁと思ったので,仮想環境を用いて実現することにしました.
参考:
homebrew - Mac OS Xで複数バージョンのPythonを利用する(2)利用編 - Qiita
Virtualenvwrapperの導入
インストールと設定
$ pip install virtualenv $ pip install virtualenvwrapper
.bash_profile
### Virtualenvwrapper if [ -f /usr/local/bin/virtualenvwrapper.sh ]; then export WORKON_HOME=$HOME/.virtualenvs source /usr/local/bin/virtualenvwrapper.sh fi
$ source .bash_profile
使い方
仮想環境を作る(Python3.x系の場合)
$ mkvirtualenv --python=/usr/local/bin/python3 py3
仮想環境に入る
$ workon py3
仮想環境を抜ける
$(py3) deactivate
仮想環境を消す
$ rmvirtualenv py3
Kivy導入
インストール
先ほど作ったpy3という環境にKivyを入れます.
また,CythonとPygameも入れる必要があるようなので,導入します.
参考:Kivy Basics — Kivy 1.8.1-dev documentation
Cython
$(py3) pip install cython
Pygame
$(py3) pip install hg+http://bitbucket.org/pygame/pygame
そしてエラー発生.
"Cannot find command hg"
コマンドみつからないってどういうことですかーって思って検索してみると,同じ状況の人を発見.
英語を斜め読みして,とりあえずmercurialというのを入れてみることに.
$(py3) pip install mercurial
そしてpygameをいれてみるも,結果は変わらず.もしかしてグローバルのPythonにいれなきゃだめなのかなと思って,仮想環境を抜けて入れなおしました.
$ pip install mercurial
これで仮想環境にめでたくpygameが入りました.
Kivy
本命をインストールです.
$(py3) pip install kivy
はい問題発生.
"Can't mix strings and bytes in path components"
ん?と思い調べてみると,全く同じ問題に遭遇している人を見つけたので,解決方法をみようと思ったのですが.
Problem installing under Python 3.3.3 (1.8.0) · Issue #1837 · kivy/kivy · GitHub
これ見る限りissueはClosedしてるけど,1.8.0にはこの問題が残っているということだよなあ.
ということで諦めて,しばらくは2.x系Python上でKivyをいじることにしました.普通に.appでインストールするだけ.
公式サイトに詳しいです.
なんというか,その前の段階で色々あったので悔しいです…….
Kivyを使ってみる
Hello world
参考:Kivy Basics — Kivy 1.8.1-dev documentation
import kivy kivy.require('1.0.6') # replace with your current kivy version ! 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()
気になったのは,Hello worldの文字がぼけていたこと.デフォルトでRetina対応とかは,さすがにないんですね…….