pythonでGUIアプリ作成 ~Kivyのインストール~
やりたいこと
調べたこと
pythonでは、GUIアプリを作るのに以下の4つの環境が候補としてあげられる。
この中で、近年人気なのがKivyらしい techplay.jp
Kivyのインストール
私の開発環境は以下のとおりである - WSLのubuntu18.04LTS - python3.6
できればこの環境を使いまわしたいので、インストールするのはubuntuに決定。
どうやら、ubuntuに入れる方法はややこしいらしい。
これを参考にインストールをしていく。
躓いたところ
stable buildsだとエラーが出る
[CRITICAL] [Window ] Unable to find any valuable Window provider. Please enable debug logging (e.g. add -d if running from the command line, or change the log level in the config) and re-run your app to identify potential causes egl_rpi - ImportError: cannot import name 'bcm' File "/usr/lib/python3/dist-packages/kivy/core/__init__.py", line 63, in core_select_lib fromlist=[modulename], level=0) File "/usr/lib/python3/dist-packages/kivy/core/window/window_egl_rpi.py", line 12, in <module> from kivy.lib.vidcore_lite import bcm, egl sdl2 - ImportError: libSDL2_image-2.0.so.0: cannot open shared object file: No such file or directory File "/usr/lib/python3/dist-packages/kivy/core/__init__.py", line 63, in core_select_lib fromlist=[modulename], level=0) File "/usr/lib/python3/dist-packages/kivy/core/window/window_sdl2.py", line 27, in <module> from kivy.core.window._window_sdl2 import _WindowSDL2Storage x11 - ImportError: No module named 'kivy.core.window.window_x11' File "/usr/lib/python3/dist-packages/kivy/core/__init__.py", line 63, in core_select_lib fromlist=[modulename], level=0) [CRITICAL] [App ] Unable to get a Window, abort.
これは、ubuntuのインストーラーにbcmが含まれないからだそう
解決策
nightly buildsを使う
$ sudo add-apt-repository ppa:kivy-team/kivy-daily $ sudo apt-get install python3-kivy
これでinstallが終了。
テストコードの実行
コード
from kivy.app import App from kivy.uix.widget import Widget class MainWindow(Widget): pass class HelloWorldApp(App): def build(self): return MainWindow() if __name__ == '__main__': HelloWorldApp().run()
躓いたところ
openGLが2.0以下なのでErrorになる
解決方法
いろいろ試したが、xwindowが選ぶopenGLが1.4になってたのが問題だった。
unset LIBGL_ALWAYS_INDIRECT
と、VcXsrvの起動時に Extra settingsでNative openglをチェックアウトする
すると、openGLが変更され起動する。
結果