Posted at

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

More than 3 years have passed since last update.


やりたいこと


  • Macでkivyが使える開発環境を用意する


Kivy

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


refs


はまったこと



  • 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先にいれるの?

% 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



% pip freeze

Cython==0.21.2


kivyの最新版をインストールする / 1.9.0


  • refsより

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

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必要だよエラー

% 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で必要なものがいくつかありそうな警告が

## --- 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