Share
Embed
Transcript
20 slides
-
自己紹介 • オカザキ • 職業:プログラマー • http://twitter.com/dario_okazaki • PyconJP2017 トーク「Kivyによるアプリケーション開発のすす
め」 • 長野Python会 with NSEG(2018/7/28)「PythonのGUI@2018」 -
個人的にお勧めのライブラリ • 「Eel」 • https://github.com/ChrisKnott/Eel • 理由:簡単。Webの勉強にもなる • 「PySimpleGUI」 •
https://pysimplegui.readthedocs.io/en/latest/ • 理由:そこそこ簡単。サンプルが多い -
ここ一年の出来事 • GUIライブラリー • 「pySymplelGUI」が加わった • https://pysimplegui.readthedocs.io/en/latest/ • パッケージライブラリー •
「PyOxidizer」が加わった • https://github.com/indygreg/PyOxidizer -
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はライブラリではなくて手法です -
PythonのGUIライブラリ(2/2) • cefpython • PyGObject • Pyglet • PyGUI •
libavg • Pyforms etc・・・ -
その他 • その他(Android端末で動くもの) • QPython ※Andoridで動くIDE • Pydroid3 ※Andoridで動くIDE •
LINE MessageAPI※Lineアプリ上で動くもの -
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で検索してみてください -
Web系 • Eel • flexx • REMI • Electron +
Python • https://github.com/fyears/electron-python- example • React Native(AltJS) + Transcrypt • Node.js + vue or react+TypeScriptでよくない? -
Eel • Eel • https://github.com/ChrisKnott/Eel • PythonのElectronみたいなもの • Bottle+JavaScript+HTML+CSS •
Chromeで動く • 詳しくはStapyの@attakeiが作成された資料を参考の事 • https://speakerdeck.com/attakei/eeldezuo-tutemiru- whoisapurito-suraido -
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 -
配布用(exe化)のライブラリ • Pyinstaller • 一番メジャー、ファイル容量と起動速度に難あり • Nuitka • Pythonnoのコンパイラ。ファイル容量が軽く、速度も早いが3rd ライブラリを入れたりするとうまく行かない場合あり
• PyOxidizer • Py2exe • Windowsのみ • cx_Freeze • py2app ※MacOSのみ -
PyOxidizer • https://github.com/indygreg/PyOxidizer • 2019年から開始 • Rustで作られている • Rustのインストールが必要 •
windowsの場合はVisualStudio Build Toolsのインストールが必 要 • メモリからモジュールを直接ロードするのでPyInstallerより起動が 速いらしい • https://pyoxidizer.readthedocs.io/en/latest/comparisons.html • ここに他のライブラリとの比較がある • できるバイナリは軽量で高速とあるが比較が難しい • 環境作成の手間を考えると今は様子みしたほうがいいかも -
その他:android/iOSアプリの開発について • Line Message API(bot)で開発がいいかも • 2019年4月にサービスが変わってフリープランで も月1000通まではPush通信ができるようになっ た •
開発時にはngrok(https://ngrok.com/ )を使用すれ ばLocalhostの内容を一時的に外にできるように なる -
Kivy • https://github.com/kivy/kivy • Kevyはキウイを食べる鳥の事 • Starの数は9811 • 最新は1.11.1 •
Raspberry Pi ,android , iosを含めたクロスプ ラットフォームのPython製GUIライブラリ -
Kivy(Python3対応について) • 今年になってPython3に全て対応されました • Kivy • Python for android •
Python2の実行サポートは終了 • kivy-ios -
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」あるので、そのう ちできるようになる? -
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