概要
Kivyは、オープンソースのPythonのUIライブラリ。
クロスプラットフォームに対応。Android、iOSを含むマルチタッチも提供しているみたいです。
Kivy: https://kivy.org/#home
今回は、Anacondaを使って仮想環境を作り、その中にKivyをインストールして動作確認してみました。
今回の動作確認では、公式ページトップにあるサンプルコード(helloworld.py
)を実行して、GUIウィンドウを表示させてみました。
# helloworld.py
from kivy.app import App
from kivy.uix.button import Button
class TestApp(App):
def build(self):
return Button(text='Hello World')
TestApp().run()
環境
以下の環境が整っていることを前提で進めます。
- Mac OSX El Capitan ver.10.11.6
- Anaconda ver.3.4
インストール
まずは、Anacondaで仮想環境を構築です。今回は環境名をkivy
という名前にしました。
記憶ではPythonのバージョン指定を入れないと、ごっそり色々なものがインストールされてしまうので、忘れないようにしておくのが重要です。
仮想環境構築が終わったら、source activate
して作った仮想環境に入ります。
$ conda create -n kivy python=3.6
$ source activate kivy
次に、Kivyのインストールです。公式ガイドを参考に。
conda create
で仮想環境を構築すると、自動的にpip
が仮想環境中にインストールされているので、pip
はすぐ使えるはずです。
公式ガイド: https://kivy.org/docs/installation/installation-osx.html
$ pip install Cython==0.26.1
$ pip install kivy
公式ガイドのとおり、これでインストール終わり、と思って実行するも、エラーが出てしまいました。
$ python helloworld.py
Purge log fired. Analysing...
Purge finished!
[INFO ] [Logger ] Record log in /Users/nekog/.kivy/logs/kivy_18-01-02_3.txt
[INFO ] [Kivy ] v1.10.0
[INFO ] [Python ] v3.6.2 |Continuum Analytics, Inc.| (default, Jul 20 2017, 13:14:59)
[GCC 4.2.1 Compatible Apple LLVM 6.0 (clang-600.0.57)]
[INFO ] [Factory ] 194 symbols loaded
[INFO ] [Image ] Providers: img_tex, img_imageio, img_dds, img_gif (img_pygame, img_pil, img_ffpyplayer ignored)
[CRITICAL] [Text ] Unable to find any valuable Text provider.
pygame - ModuleNotFoundError: No module named 'pygame'
File "/Users/nekog/.pyenv/versions/anaconda3-4.0.0/envs/kivy/lib/python3.6/site-packages/kivy/core/__init__.py", line 59, in core_select_lib
fromlist=[modulename], level=0)
File "/Users/nekog/.pyenv/versions/anaconda3-4.0.0/envs/kivy/lib/python3.6/site-packages/kivy/core/text/text_pygame.py", line 12, in <module>
import pygame
pil - ModuleNotFoundError: No module named 'PIL'
File "/Users/nekog/.pyenv/versions/anaconda3-4.0.0/envs/kivy/lib/python3.6/site-packages/kivy/core/__init__.py", line 59, in core_select_lib
fromlist=[modulename], level=0)
File "/Users/nekog/.pyenv/versions/anaconda3-4.0.0/envs/kivy/lib/python3.6/site-packages/kivy/core/text/text_pil.py", line 7, in <module>
from PIL import Image, ImageFont, ImageDraw
[CRITICAL] [App ] Unable to get a Text provider, abort.
モジュール(PIL, pygame)が見つからないとのこと。
PIL (Python Imaging Library)は、開発が止まっており、Python3系では使えない模様。代わりにPILのforkであるPillowを使うのが良いみたいです。
Pillow is the friendly PIL fork by Alex Clark and Contributors. PIL is the Python Imaging Library by Fredrik Lundh and Contributors.
Pillow: https://pillow.readthedocs.io/en/4.3.x/
PIL: http://www.pythonware.com/products/pil/
Pillow: https://pillow.readthedocs.io/en/4.3.x/
kivyをインストールしたのと同様に、pip
でインストール。
$ pip install pillow
$ pip install pygame
動作確認
python helloworld.py
でスクリプトを実行。問題なくGUIが立ち上がりました。
$ python helloworld.py
[INFO ] [Logger ] Record log in /Users/nekog/.kivy/logs/kivy_18-01-02_5.txt
[INFO ] [Kivy ] v1.10.0
[INFO ] [Python ] v3.6.2 |Continuum Analytics, Inc.| (default, Jul 20 2017, 13:14:59)
[GCC 4.2.1 Compatible Apple LLVM 6.0 (clang-600.0.57)]
[INFO ] [Factory ] 194 symbols loaded
[INFO ] [Image ] Providers: img_tex, img_imageio, img_dds, img_pygame, img_pil, img_gif (img_ffpyplayer ignored)
[INFO ] [Text ] Provider: pygame
[INFO ] [Window ] Provider: pygame
[INFO ] [GL ] Using the "OpenGL ES 2" graphics system
[INFO ] [GL ] Backend used <gl>
[INFO ] [GL ] OpenGL version <b'2.1 INTEL-10.14.73'>
[INFO ] [GL ] OpenGL vendor <b'Intel Inc.'>
[INFO ] [GL ] OpenGL renderer <b'Intel(R) Iris(TM) Graphics 6100'>
[INFO ] [GL ] OpenGL parsed version: 2, 1
[INFO ] [GL ] Shading version <b'1.20'>
[INFO ] [GL ] Texture max size <16384>
[INFO ] [GL ] Texture max units <16>
[INFO ] [Window ] virtual keyboard not allowed, single mode, not docked
[INFO ] [OSC ] using <multiprocessing> for socket
[INFO ] [Base ] Start application main loop
[INFO ] [GL ] NPOT texture support is available
^[[INFO ] [Base ] Leaving application in progress...
コメントを残す