PythonのGUI_2019.pdf

Fed4c6cfec7502b771e12f08f8d5ec6d?s=47 Jun okazaki
September 10, 2019

 PythonのGUI_2019.pdf

Fed4c6cfec7502b771e12f08f8d5ec6d?s=128

Jun okazaki

September 10, 2019
Tweet

Transcript

  1. PythonのGUI@2019 2019/09/10 オカザキ

  2. 自己紹介 • オカザキ • 職業:プログラマー • http://twitter.com/dario_okazaki • PyconJP2017 トーク「Kivyによるアプリケーション開発のすす

    め」 • 長野Python会 with NSEG(2018/7/28)「PythonのGUI@2018」
  3. 今日の内容のきっかけ PythonのGUIについて初心者向けのライブラリって どれがいいの?

  4. 個人的にお勧めのライブラリ • 「Eel」 • https://github.com/ChrisKnott/Eel • 理由:簡単。Webの勉強にもなる • 「PySimpleGUI」 •

    https://pysimplegui.readthedocs.io/en/latest/ • 理由:そこそこ簡単。サンプルが多い
  5. PythoのGUIについて • 決定的なライブラリがない • 日本語の情報が少ない • ソフトウェア・ライセンス • バイナリ化(配布用)のライブラリでいいのがな い

  6. ここ一年の出来事 • GUIライブラリー • 「pySymplelGUI」が加わった • https://pysimplegui.readthedocs.io/en/latest/ • パッケージライブラリー •

    「PyOxidizer」が加わった • https://github.com/indygreg/PyOxidizer
  7. PythonのGUIライブラリ(1/2) • Tkinter • wxPython • PyQt5 ※QT • PySide2

    ※QT • pySimplelGUI • PyGTK • PyFLTK • Kivy • Eel • flexx • REMI • Electron + Python※2 • React Native + Transcrypt(altJS)※2 • Pygame • Toga ※2はライブラリではなくて手法です
  8. PythonのGUIライブラリ(2/2) • cefpython • PyGObject • Pyglet • PyGUI •

    libavg • Pyforms etc・・・
  9. その他 • その他(Android端末で動くもの) • QPython ※Andoridで動くIDE • Pydroid3 ※Andoridで動くIDE •

    LINE MessageAPI※Lineアプリ上で動くもの
  10. QT系 • PythonのGUIでは一番メジャー • PyQT5 • https://www.riverbankcomputing.com/software/py qt/intro • 商用ライセンス有

    • 開発元:Riverbank Computing社 • PySide2 • https://www.qt.io/jp/qt-for-python-2 • 開発元:The Qt Company • 2つの違いはWebで検索してみてください
  11. Web系 • Eel • flexx • REMI • Electron +

    Python • https://github.com/fyears/electron-python- example • React Native(AltJS) + Transcrypt • Node.js + vue or react+TypeScriptでよくない?
  12. Eel • Eel • https://github.com/ChrisKnott/Eel • PythonのElectronみたいなもの • Bottle+JavaScript+HTML+CSS •

    Chromeで動く • 詳しくはStapyの@attakeiが作成された資料を参考の事 • https://speakerdeck.com/attakei/eeldezuo-tutemiru- whoisapurito-suraido
  13. PySympleGUI • PySympleGUI • https://pysimplegui.readthedocs.io/en/latest/ • 2018年からプロジェクトが開始 • https://www.reddit.com/r/Python/comments/d2ghve/a_case_for _a_pythonic_python_gui/

    • tkinter, Qt(一部), Remi, WxPythonのラッパー pip install pysimplegui or pip3 install pysimplegui
  14. 配布用(exe化)のライブラリ • Pyinstaller • 一番メジャー、ファイル容量と起動速度に難あり • Nuitka • Pythonnoのコンパイラ。ファイル容量が軽く、速度も早いが3rd ライブラリを入れたりするとうまく行かない場合あり

    • PyOxidizer • Py2exe • Windowsのみ • cx_Freeze • py2app ※MacOSのみ
  15. PyOxidizer • https://github.com/indygreg/PyOxidizer • 2019年から開始 • Rustで作られている • Rustのインストールが必要 •

    windowsの場合はVisualStudio Build Toolsのインストールが必 要 • メモリからモジュールを直接ロードするのでPyInstallerより起動が 速いらしい • https://pyoxidizer.readthedocs.io/en/latest/comparisons.html • ここに他のライブラリとの比較がある • できるバイナリは軽量で高速とあるが比較が難しい • 環境作成の手間を考えると今は様子みしたほうがいいかも
  16. その他:android/iOSアプリの開発について • Line Message API(bot)で開発がいいかも • 2019年4月にサービスが変わってフリープランで も月1000通まではPush通信ができるようになっ た •

    開発時にはngrok(https://ngrok.com/ )を使用すれ ばLocalhostの内容を一時的に外にできるように なる
  17. Kivy • https://github.com/kivy/kivy • Kevyはキウイを食べる鳥の事 • Starの数は9811 • 最新は1.11.1 •

    Raspberry Pi ,android , iosを含めたクロスプ ラットフォームのPython製GUIライブラリ
  18. Kivy(Python3対応について) • 今年になってPython3に全て対応されました • Kivy • Python for android •

    Python2の実行サポートは終了 • kivy-ios
  19. Kivy(日本語入力について) • IME(変換候補)は1.10.1からOSによっては出るようになった • Webや書籍に書いてある日本語が出ない不具合はある程度解消された • IMEの部分はSDLに依存しているので、OSによってでない状況は不明 OS IMEの対応状況 詳細

    windows ◦ パッチ当てる必要があったりするけどみんなの努力で変 換候補まで出るようになった MacOS 〇 IMEは開く、変換候補も複数開く Linux △ 他の人の情報だとUbunutuでは開かないそうです。Ibus には対応しているとSDL2は言っている Android 〇 Nexus5、複数の機種で試したところ本語入力は問題なく できます※最新のSDL2だとバグっているかも iOS × IMEは開かないそうです。ただSDL2.0.9:のリリースノー ト見ると「iOS: Fixed Asian IME input」あるので、そのう ちできるようになる?
  20. Kivy(海外の話) • ここ1年ぐらいはKivyと機械学習を使ったものが多いみたい • 書籍 • Building Android Apps in

    Python Using Kivy with Android Studio: With Pyjnius, Plyer, and Buildozer • Practical Computer Vision Applications Using Deep Learning with CNNs: With Detailed Examples in Python Using TensorFlow and Kivy • カンファレンス • Pycon APAC 2019 – Jairus Jimenez – Setting up Computer Vision with Kivy using Tensorfl