2015年9月4日金曜日

【python3】Windows版のkivyでnumpyやpandasを使う【kivy, numpy】

numpyとkivyを併用したかったが、正攻法でやると複雑な操作がおおくてややこしいので、なるべくシンプルにやってみた。

kivyがらくらく動かせるportable package版kivyを入れて説明書通りやってみるとととりあえずkivyは動かせるんですが、スクリプトの中で

import numpy as np
import pandas as pd

とかはできないですわな。そりゃそうだ。

一方でこういう計算系はAnacondaというpythonのディストリビューションを入れると最初から入っていてとても楽ちん。でも

from kivy.app import App

とかはできないですわな。科学技術計算特化のディストリビューションにデフォルトでkivy入ってたら逆にびっくり。

それで、両方使って楽々kivyとnumpyを併用する方法はないのか考えてました。
で気づいたんですが、 kivyの入ったフォルダの中にAnaconda入れればいいんじゃねと。

つまり、




1. kivyをインストールする(Kivy-1.9.0-py3.4-win32-x64というようなフォルダが作成される)
2. kivyについての諸々の設定を済ませておく(numpy使ってないプログラムで動作確認もしておく)
3. Anacondaをインストールする(kivyフォルダがD直下にあったとしたら、こんな感じで↓)


4. kivy.batを編集して、呼び出し先をAnacondaに変更(上図→下図のように)


  
5. ためしに以下のようなコードを実行してみる。エラーが出なければ成功。

from kivy.app import App
import numpy as np

class CheckApp(App):
    pass

if __name__ == '__main__':
    CheckApp().run()

6. 最初にkivyに入っていたPython34はもういらないから消してしまう

ちなみにこれをやるとPython本体をはじめあらゆるファイルが重複していて最悪なファイル構成になってしまう。
kivy以外の用途でAnacondaを動かしていても


となるのでなんかやだ。でも動く。動くんだ。それでいいじゃないか…。
自分はkivyが入ってるフォルダの長い名前を、Anacondaを導入する手前の段階でKivyにしちゃってます。多少ましになる。

ちなみに、vim使ってる人は、

autocmd BufNewFile,BufRead *.py nnoremap <C-e> :!D:Kivy-1.9.0-py3.4-win32-x64\kivy-3.4.bat %<CR>

などと追記すれば、C-eで即座にkivyが起動する。
ふつうのpythonを使いたい時は、autocmdで別のショートカットを割り当てたり、QuickRunと併用すれば快適だと思う。

0 件のコメント:

コメントを投稿