Mac環境にてKivyをインストールしてみた

## やりたいこと
* Macでkivyが使える開発環境を用意する

### Kivy
* 公式：http://kivy.org
* [wikipediaより](http://ja.wikipedia.org/wiki/Kivy)

```
KivyはPythonのNUI(Natural User Interface)でのマルチタッチアプリケーション開発のためのオープンソースライブラリである。動作環境はAndroid、iOS、Linux、MacOS X、Windowsである。MITライセンスで配布されているフリーのオープンソースソフトウェアである。
```

### refs
* ここが参考になった
 * http://kuroneko0208.hatenablog.com/entry/2014/02/04/210343

### はまったこと
* `cython`をいれてからの`kivy`いれても、`pygame`が必要

---

### pyenvにて
* とりあえず入っている前提で今回は、3系で `3.4.2`

```
% pyenv local
3.4.2
% python --version
Python 3.4.2
```

### kivy 1.8.0をすんなりいれることができなかった
* `pip install kivy` でインストールできない
 * というより、 `1.8.0` がすんなりインストールできない
* エラー例 ... cython先にいれるの？

```bash
% pip install kivy
Downloading/unpacking kivy
Running setup.py (path:/private/var/folders/3z/sspq04dx20n3559n0fx1p39w0000gn/T/pip_build_hoge/kivy/setup.py) egg_info for package kivy
Cython is missing, its required for compiling kivy !

Traceback (most recent call last):File "<string>", line 17, in <module>File "/private/var/folders/3z/sspq04dx20n3559n0fx1p39w0000gn/T/pip_build_hoge/kivy/setup.py", line 94, in <module>from Cython.Distutils import build_extImportError: No module named 'Cython'Complete output from command python setup.py egg_info:

Cython is missing, its required for compiling kivy !




Traceback (most recent call last):
File "<string>", line 17, in <module>
File "/private/var/folders/3z/sspq04dx20n3559n0fx1p39w0000gn/T/pip_build_hoge/kivy/setup.py", line 94, in <module>
from Cython.Distutils import build_ext
ImportError: No module named 'Cython'
----------------------------------------Cleaning up...Command python setup.py egg_info failed with error code 1 in /private/var/folders/3z/sspq04dx20n3559n0fx1p39w0000gn/T/pip_build_hoge/kivy
Storing debug log for failure in /Users/hoge/.pip/pip.log~                                                                                                                                                                                                          
```

### Cython
* こちらはすんなりはいるが、エラー内容が変わるだけ
 * `pip install cython`

```bash
% pip freeze
Cython==0.21.2
```

### kivyの最新版をインストールする / 1.9.0
* refsより

```
% pip install git+https://github.com/kivy/kivy.git
```

pipで最新版をインストールしたい場合は、gitからの採取を管理できるのか。
これが知らなかったこと。学ぶ。

* 参考他：[pip は git リポジトリから直接パッケージをインストールできる](http://momijiame.tumblr.com/post/53513211846/pip-git)

#### `pip freeze`
```
% pip freeze
Cython==0.21.2
Kivy==1.9.0-dev
Kivy-Garden==0.1.1
requests==2.5.1
```

---

### Hello world
* 公式より
* が、ダメ

#### pygame必要だよエラー
```bash
% python test001.py
[WARNING           ] [Config      ] Older configuration version detected (0 instead of 12)
[WARNING           ] [Config      ] Upgrading configuration in progress.
[INFO              ] [Logger      ] Record log in /Users/hoge/.kivy/logs/kivy_15-01-02_0.txt
[INFO              ] Kivy v1.9.0-dev
[INFO              ] [Python      ] v3.4.2 (default, Jan  2 2015, 17:04:28)
[GCC 4.2.1 Compatible Apple LLVM 6.0 (clang-600.0.56)]
[INFO              ] [Factory     ] 173 symbols loaded
[INFO              ] [Image       ] Providers: img_tex, img_imageio, img_dds, img_gif (img_pil, img_pygame, img_ffpyplayer, img_sdl2 ignored)
[CRITICAL          ] [Text        ] Unable to find any valuable Text provider at all!
pygame - ImportError: No module named 'pygame'
  File "/Users/hoge/.anyenv/envs/pyenv/versions/3.4.2/lib/python3.4/site-packages/kivy/core/__init__.py", line 57, in core_select_lib
    fromlist=[modulename], level=0)
  File "/Users/hoge/.anyenv/envs/pyenv/versions/3.4.2/lib/python3.4/site-packages/kivy/core/text/text_pygame.py", line 12, in <module>
    import pygame

sdl2 - ImportError: No module named 'kivy.core.text._text_sdl2'
  File "/Users/hoge/.anyenv/envs/pyenv/versions/3.4.2/lib/python3.4/site-packages/kivy/core/__init__.py", line 57, in core_select_lib
    fromlist=[modulename], level=0)
  File "/Users/hoge/.anyenv/envs/pyenv/versions/3.4.2/lib/python3.4/site-packages/kivy/core/text/text_sdl2.py", line 12, in <module>
    from kivy.core.text._text_sdl2 import (_SurfaceContainer, _get_extents,

sdlttf - ImportError: No module named 'kivy.core.text.text_sdlttf'
  File "/Users/hoge/.anyenv/envs/pyenv/versions/3.4.2/lib/python3.4/site-packages/kivy/core/__init__.py", line 57, in core_select_lib
    fromlist=[modulename], level=0)

pil - ImportError: No module named 'PIL'
  File "/Users/hoge/.anyenv/envs/pyenv/versions/3.4.2/lib/python3.4/site-packages/kivy/core/__init__.py", line 57, in core_select_lib
    fromlist=[modulename], level=0)
  File "/Users/hoge/.anyenv/envs/pyenv/versions/3.4.2/lib/python3.4/site-packages/kivy/core/text/text_pil.py", line 8, in <module>
    from PIL import Image, ImageFont, ImageDraw

[CRITICAL          ] [App         ] Unable to get a Text provider, abort.
```

### pygameのインストール / 最新版
* refsのとおりだが、 `git`ではなく`hg`こと`Mercurial` 管理なので
 * `hg`コマンド必要
 * `brew install hg` とかでいい
* pipは`hg`からもできるのか。

```
pip install hg+http://bitbucket.org/pygame/pygame
```

* が、`pygameで必要なものがいくつかありそうな警告が

```bash
## --- snip
gcc -Wno-unused-result -DNDEBUG -g -fwrapv -O3 -Wall -Wstrict-prototypes -DENABLE_NEWBUF=1 -I/NEED_INC_PATH_FIX -I/Users/usr0600109/.anyenv/envs/pyenv/versions/3.4.2/include/python3.4m -c src/scrap.c -o build/temp.macosx-10.9-x86_64-3.4/src/scrap.o

src/scrap.c:27:10: fatal error: 'SDL.h' file not found

#include "SDL.h"

         ^

1 error generated.
## --- snip
```

#### pygameのための
* Macなので `homebrew` フル活用
* 一個だけですんだ

```
brew install sdl
```

* すんなり入る

```
% pip freeze
Cython==0.21.2
Kivy==1.9.0-dev
Kivy-Garden==0.1.1
pygame==1.9.2a0
requests==2.5.1
```

### 今度こそ Hello World
* やったね

![image](https://qiita-image-store.s3.amazonaws.com/0/20303/27660877-ab11-132b-f245-676d1342dd13.png)