Pythonで作るGUIアプリ with kivy 環境構築編

# はじめに
本記事は、PythonのGUI作成ライブラリであるkivyの使い方について解説する記事です。

よろしければ一つ前の[導入編](https://qiita.com/phorizon20/items/ff352ef1ad15b62ff266)も、併せてご参照ください。

# 諸々のLINK
主要なリンク集です。ざっと一通り目を通しておくと良いかと思います。

[公式HP](https://kivy.org/#home)

[API Reference](https://kivy.org/doc/stable/api-kivy.html)

[ドキュメントの日本語訳](https://pyky.github.io/kivy-doc-ja/)

# 環境構築
早速環境構築に入っていきます。

イマドキな開発者はAWSやコンテナ上で開発する方も多いかもしれませんが、今回開発するのはGUIアプリですので、ローカル上に環境構築する方が何かと便利です。（VNCで画面を飛ばしたりすれば不可能ではないですが、あまりオススメしません）

構築方法は、公式のHPに載っている手順に従っておけばまず間違いありません。

[Getting Started » Installation](https://kivy.org/doc/stable/gettingstarted/installation.html)

kivy自体は、WindowsからMac、Linux、ラズパイまで広くカバーしております。OSの画像をクリックすればそれぞれの方法が出てくるので、お使いの環境に合わせて構築していきましょう。

解説では、私が使っている環境がWindows10なので、参考までに流れをご紹介します。

## Windowsでの環境構築
### 1. Pythonのインストール
もしインストールされている方は飛ばしてください。

Windowsに限った話ではないかもしれませんが、ローカルに環境を構築する場合、`Anaconda`というディストリビューションを利用するのと大変ラクチンです。これにより、Python本体のバージョン管理・環境管理・ライブラリ管理などに必要なツールがセットになってまとめてインストールできます。

この大変便利なAnacondaですが、[wiki](https://ja.wikipedia.org/wiki/Anaconda_(Python%E3%83%87%E3%82%A3%E3%82%B9%E3%83%88%E3%83%AA%E3%83%93%E3%83%A5%E3%83%BC%E3%82%B7%E3%83%A7%E3%83%B3))曰く、`Anacondaは、データサイエンスおよび機械学習関連アプリケーションのための…（中略）…250以上の人気のあるデータサイエンスパッケージが含まれている。`です。これが便利な事も多いのですが、今回に限っては使いもしない機械学習パッケージは邪魔なだけなので、250以上の人気パッケージが*入っていない*`Miniconda`の方をインストールします。

[Miniconda](https://conda.io/en/latest/miniconda.html#)

こちらからインストーラーをダウンロードし、適当にNEXTを連打していけば大丈夫です。

インストールが完了したら、ターミナルやコマンドプロンプトにて下記コマンドを打ち確認してみてください。

```
$ conda -V
conda 4.5.4
```

上手く結果が表示されないとき、Windowsで多くの場合、環境変数のPATHが通っていないだけなので、下記２つを追加しましょう。

```
C:\<Minicondaをインストールしたフォルダ>\Miniconda3
C:\<Minicondaをインストールしたフォルダ>\Miniconda3\Scripts
```

これらを追加したのち、コマンドプロンプトを再起動して、再度`conda -V`を確認してみてください。

### 2. kivy用の仮想環境を作成
conda環境ができれば後は簡単で、まずはkivy用に新しい仮想環境（作業部屋みたいなモノ）を作っていきます。

まず下記コマンドで、現在ある環境の一覧を確認します。

```
$ conda info -e
# conda environments:
#
base                  *  C:\<Minicondaをインストールしたフォルダ>\Miniconda3
```

インストールしたばかりの場合、上記のようにデフォルトの環境以外には何もありません。ここに、kivy用の仮想環境を作成します。

```
$ cconda create python=3.6 -n kivy 
```

`Proceed ([y]/n)?` と聞かれますので、yと答えれば環境構築が始まります。

完了したら再度下記コマンドで、

```
$ conda info -e
# conda environments:
#
base                  *  C:\<Minicondaをインストールしたフォルダ>\Miniconda3
kivy                  *  C:\<Minicondaをインストールしたフォルダ>\Miniconda3\envs\kivy
```

と追加されている様子が確認できれば完璧です。

### 3. kivyのインストール
まずはkivy用に作った仮想環境を起動（作業部屋に”入る”みたいな作業を）します。

condaのおかげでこれもとっても簡単で、

```
$ activate kivy
```

とし、プロンプトの頭に`(kivy)`と表示されれば成功です。


続いてkivyのインストールですが、Windowsでの手順は、[HP](https://kivy.org/doc/stable/installation/installation-windows.html)にある通り進めて行けば問題ありませんが、conda環境があるおかげで一部不要な部分もあり、それらを省くと下記の通りかと思います。

```
pip install docutils pygments pypiwin32 kivy.deps.sdl2 kivy.deps.glew
pip install kivy.deps.gstreamer
pip install kivy
```

`pip install kivy_examples`は、公式のサンプルに興味がある方はやっておくといいかもしれません。

その後、インストールしたパッケージのリストを表示して、

```
$ pip freeze
.
.
Kivy==1.10.1
.
.
```

のように、リストの中にkivyがあれば完了です。


# はじめてのkivyアプリ
環境が出来たら、早速アプリを作ってみましょう！

詳しい解説は後ほど行っていきますので、ひとまずは何も考えずに下記のコードをコピペして動かしてみてください。


```main.py
# coding:utf-8

from kivy.app import App
from kivy.uix.boxlayout import BoxLayout
from kivy.uix.button import Button

class MainScreen(BoxLayout):
    def __init__(self, **kwargs):
        super().__init__(**kwargs)
        btn = Button(text="btn")
        self.add_widget(btn)

class MainApp(App):
    def build(self):
        MS = MainScreen()
        return MS

if __name__=="__main__":
    MainApp().run()
```

```
(kivy) $ python main.py
```

環境構築が上手くいっていれば、下記のような画面が表示されるはずです。


![001_first_app.png](https://qiita-image-store.s3.amazonaws.com/0/216607/20683845-1fe6-cff7-ce2a-f1317fe992b1.png)


画面一面にボタンが一個だけ、押しても色が変わるだけという、何とも味気ないアプリですが、これにてkivyでアプリを開発する準備が無事整いました。

以後はこの`main.py`をどんどん作り込んでいき、最高にCOOLなアプリを作っていきましょう。



長くなったので、コードの説明は次回行っていきます。
ありがとうございました。