PythonでGUIアプリ作りたくなったので、Kivyを入れてみた
最近、私的にも仕事でもpythonを使う機会が増えてきました。ちょうど、qiitaの方でありがた過ぎる記事に出会ったこともあって、この機にpythonでGUIアプリケーションを作ってみようと思いました。
この中で紹介されていたGUIアプリケーション作成環境はKivyというものでした。
というわけで早速インストールを試みました。今回はこれらのサイト様のお力を借りてインストールしました。
Kivy 超入門(1):インストールからHello, World! まで
私は、pythonはanaconda経由で3.6をすでにインストール済みだったので、kivyとその関連ライブラリーのインストールからはじめました。公式に書いてある通り、
python -m pip install --upgrade pip wheel setuptools
でインストールを試みたのですが、いきなりコケました。なぜかオンラインでsetuptoolsがインストールできませんでした。仕方ないので、ブラウザからダウンロードしてきて
オフラインインストールをしました。やり方は単純で、
- pipが使えるコンソール(windowsでanacondaを入れているならAnacondaのプロンプト、macならterminal)を開いて、ダウンロードしてきた「setuptools-38.2.1-py2.py3-none-any.whl」などの名前のファイルと同じディレクトリに移動します。
- 移動先で
を実行します。pip install setuptools-38.2.1-py2.py3-none-any.whl
基本的にはこの2ステップだけで入るはずです。色々メッセージが出て、最後に
Successfully installed setuptools-38.2.1
などの成功メッセージが出れば成功です。
次にdocutilsとpygmentsとpypiwin32とsdl2とglewをインストールします。
python -m pip install docutils pygments pypiwin32 kivy.deps.sdl2 kivy.deps.glew
ここでも何かのインストールで失敗しました。人によってはなくてもいいライブラリもあるので今回は無視。必要があれば、何がないのかわかった時点で再インストールすることにします。ライブラリの詳細は公式を参考にどうぞ。
Installation on Windows(翻訳済み) — Kivy 1.10.0 ドキュメント
Simple DirectMedia Layer - SDL version 2.0.7 (stable)
次に、映像や音声系のライブラリgstreamerのインストール。
python -m pip install kivy.deps.gstreamer
今回は3.6なのでangleは飛ばします。最後にKivyについてもインストール。
python -m pip install kivy
実行して
Successfully installed Kivy-Garden-0.1.4 kivy-1.10.0
などのメッセージが出れば成功です。具体的にどれか必須かはわかりませんが、上述のどれかがないとKivyのインストールに失敗します。私の場合は、setuptoolsがないせいでした。メッセージがいっぱい出て面食らうかもしれませんが、だいたい最後に出るメッセージを読めば、何に失敗したかくらいはわかります。私の場合は、を実行したら、
Could not import setuptools which is required to install from a source distribution.
Please install setuptools
などと出ました。これを見れば、「あぁ、setuptoolsがないから怒られているのね」ということぐらいはわかるかと思います。ないものがわかったら、pipでインストールを試みる、オンラインインストールに失敗したら、ブラウザ経由でダウンロードしてオフラインでインストールする。これで大半は解決できると思います。ちなみにmacの私は、Kivyはインストールできたのですが、サンプルコードを実行したら、pygameがないと怒られました。さらにpygameのインストールにはsdlがいるのでこれから先にインストール。
無事、sdl→pygameの順で無事インストール成功。pygameをオフラインインストールするならこちらを参考にすれば落とせます。
Kivy 超入門(1):インストールからHello, World! まで
に習って
from kivy.app import App
from kivy.uix.label import Label
class IntroKivy(App):
def build(self):
return Label(text="Hello, World!")
if __name__ == "__main__":
IntroKivy().run()
を実行すると、コンソール上はなんかまだエラーを吐いている気もしましたが、とりあえず"Hellow World"の画面が表示されました。やったね。
これからもう少し遊んで、冒頭の教科書に習って簡単なアプリを作ってみようと思います。長文、駄文ではありますが、ご参考になれば幸いです。ではまた。
〜参考〜冒頭の教科書以外でKivy基本文法を学ぶときに参考になりそうなサイト様
Anacondaのライブラリとの連携