もちっとメモ

もちっとメモ

もぐりのエンジニアが日々の中で試してみたことを気が向いたときに書き連ねていきます

PythonでGUIアプリ作りたくなったので、Kivyを入れてみた

最近、私的にも仕事でもpythonを使う機会が増えてきました。ちょうど、qiitaの方でありがた過ぎる記事に出会ったこともあって、この機にpythonGUIアプリケーションを作ってみようと思いました。

qiita.com

この中で紹介されていたGUIアプリケーション作成環境はKivyというものでした。

Kivy - Wikipedia

というわけで早速インストールを試みました。今回はこれらのサイト様のお力を借りてインストールしました。

Kivy 超入門(1):インストールからHello, World! まで

qiita.com

私は、pythonはanaconda経由で3.6をすでにインストール済みだったので、kivyとその関連ライブラリーのインストールからはじめました。公式に書いてある通り、

python -m pip install --upgrade pip wheel setuptools

でインストールを試みたのですが、いきなりコケました。なぜかオンラインでsetuptoolsがインストールできませんでした。仕方ないので、ブラウザからダウンロードしてきて

pypi.python.org

オフラインインストールをしました。やり方は単純で、

  1. pipが使えるコンソール(windowsでanacondaを入れているならAnacondaのプロンプト、macならterminal)を開いて、ダウンロードしてきた「setuptools-38.2.1-py2.py3-none-any.whl」などの名前のファイルと同じディレクトリに移動します。
  2. 移動先で
    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がいるのでこれから先にインストール。

qiita.com

無事、sdlpygameの順で無事インストール成功。pygameをオフラインインストールするならこちらを参考にすれば落とせます。

gamepro.blog.jp

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"の画面が表示されました。やったね。

f:id:T-N-Clark:20171128004402p:plain

これからもう少し遊んで、冒頭の教科書に習って簡単なアプリを作ってみようと思います。長文、駄文ではありますが、ご参考になれば幸いです。ではまた。

〜参考〜冒頭の教科書以外でKivy基本文法を学ぶときに参考になりそうなサイト様

qiita.com

qiita.com

Anacondaのライブラリとの連携

laughingman-log.blogspot.jp