Submit Search
PythonのGUI_2018 with NSEG
1 like
2,636 views
Jun Okazaki
ギーク長野での発表のスライドです。
Technology
Read more
1 of 46
Download now
Download to read offline
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
More Related Content
PDF
Webアプリを並行開発する際のマイグレーション戦略
Takayuki Shimizukawa
PPTX
グラフ構造のデータモデルをPower BIで可視化してみた
CData Software Japan
PDF
新規事業「Bill One」による Google Cloud 活用術
Mao Ohnishi
PDF
Digitaltransformation Journey
toshihiro ichitani
PDF
ナラティブ・プロトタイピング
toshihiro ichitani
PDF
Cognitive Complexity でコードの複雑さを定量的に計測しよう
Shuto Suzuki
PDF
アップルの特許に見るUI特許のポイント
kurikiyo
PPTX
Rails上でのpub/sub イベントハンドラの扱い
ota42y
Webアプリを並行開発する際のマイグレーション戦略
Takayuki Shimizukawa
グラフ構造のデータモデルをPower BIで可視化してみた
CData Software Japan
新規事業「Bill One」による Google Cloud 活用術
Mao Ohnishi
Digitaltransformation Journey
toshihiro ichitani
ナラティブ・プロトタイピング
toshihiro ichitani
Cognitive Complexity でコードの複雑さを定量的に計測しよう
Shuto Suzuki
アップルの特許に見るUI特許のポイント
kurikiyo
Rails上でのpub/sub イベントハンドラの扱い
ota42y
What's hot
(20)
PDF
20221226_TITECH_lecture_ishizaki_public.pdf
Kazuaki Ishizaki
PDF
それはYAGNIか? それとも思考停止か?
Yoshitaka Kawashima
PDF
イミュータブルデータモデル(入門編)
Yoshitaka Kawashima
PDF
SQLアンチパターン - 開発者を待ち受ける25の落とし穴 (拡大版)
Takuto Wada
PDF
ARMアーキテクチャにおけるセキュリティ機構の紹介
sounakano
PDF
Dockerを支える技術
Etsuji Nakai
PDF
Docker入門-基礎編 いまから始めるDocker管理【2nd Edition】
Masahito Zembutsu
PPTX
WayOfNoTrouble.pptx
Daisuke Yamazaki
PDF
なぜ「マイクロサービス“化”」が必要なのか
Yusuke Suzuki
PPTX
RLSを用いたマルチテナント実装 for Django
Takayuki Shimizukawa
PPTX
DDDモデリングハンズオン - レガシーをぶっつぶせ。現場でDDD!2nd
BIGLOBE Inc.
PDF
乗っ取れコンテナ!!開発者から見たコンテナセキュリティの考え方(CloudNative Days Tokyo 2021 発表資料)
NTT DATA Technology & Innovation
PDF
Spring Data RESTを利用したAPIの設計と、作り直しまでの道のり
Rakuten Group, Inc.
PDF
マイクロサービスにおけるテスト自動化 with Karate
Takanori Suzuki
PDF
高負荷に耐えうるWeb application serverの作り方
yuta-ishiyama
PPTX
オーバーエンジニアリングって何? #devsumi #devsumiA
Ore Product
PDF
"Kong Summit, Japan 2022" パートナーセッション:Kong on AWS で実現するスケーラブルな API 基盤の構築
Junji Nishihara
PDF
旅館運営企業で実現した現場出身者の力を活かしたアジャイル開発
崇介 藤井
PDF
MongoDB Atlasの構成について 2019
昌桓 李
PPTX
SQLアンチパターン メンター用資料
Hironori Miura
20221226_TITECH_lecture_ishizaki_public.pdf
Kazuaki Ishizaki
それはYAGNIか? それとも思考停止か?
Yoshitaka Kawashima
イミュータブルデータモデル(入門編)
Yoshitaka Kawashima
SQLアンチパターン - 開発者を待ち受ける25の落とし穴 (拡大版)
Takuto Wada
ARMアーキテクチャにおけるセキュリティ機構の紹介
sounakano
Dockerを支える技術
Etsuji Nakai
Docker入門-基礎編 いまから始めるDocker管理【2nd Edition】
Masahito Zembutsu
WayOfNoTrouble.pptx
Daisuke Yamazaki
なぜ「マイクロサービス“化”」が必要なのか
Yusuke Suzuki
RLSを用いたマルチテナント実装 for Django
Takayuki Shimizukawa
DDDモデリングハンズオン - レガシーをぶっつぶせ。現場でDDD!2nd
BIGLOBE Inc.
乗っ取れコンテナ!!開発者から見たコンテナセキュリティの考え方(CloudNative Days Tokyo 2021 発表資料)
NTT DATA Technology & Innovation
Spring Data RESTを利用したAPIの設計と、作り直しまでの道のり
Rakuten Group, Inc.
マイクロサービスにおけるテスト自動化 with Karate
Takanori Suzuki
高負荷に耐えうるWeb application serverの作り方
yuta-ishiyama
オーバーエンジニアリングって何? #devsumi #devsumiA
Ore Product
"Kong Summit, Japan 2022" パートナーセッション:Kong on AWS で実現するスケーラブルな API 基盤の構築
Junji Nishihara
旅館運営企業で実現した現場出身者の力を活かしたアジャイル開発
崇介 藤井
MongoDB Atlasの構成について 2019
昌桓 李
SQLアンチパターン メンター用資料
Hironori Miura
Ad
Similar to PythonのGUI_2018 with NSEG
(20)
PPTX
「Kivyによるアプリケーション開発のすすめ」の勧め
Jun Okazaki
PDF
はじめてのShiny
Kazuya Wada
PDF
PyQtではじめるGUIプログラミング
Ransui Iso
PDF
PyconJP2017 Kivyによるアプリケーション開発のすすめ
Jun Okazaki
PDF
Introduction Pycon2010
(shibao)芝尾 (kouichiro)幸一郎
PDF
Python札幌 2012/06/17
Shinya Okano
PDF
プログラマーとの出会い - Hello, Programmer! at PyCon Kyushu 2022
Takayuki Shimizukawa
PPTX
PythonとRによるデータ分析環境の構築と機械学習によるデータ認識
Katsuhiro Morishita
PDF
Python & PyConJP 2014 Report
gree_tech
PPTX
PythonとRによるデータ分析環境の構築と機械学習によるデータ認識 第3版
Katsuhiro Morishita
ODP
Introduction of Python
Tomoya Nakayama
PDF
使えるDjango1.4
hirokiky
PDF
RでつくるWebアプリ~rApache編~
Kazuya Wada
PDF
Sphinx/reST
Ryo Maruyama
PDF
次世代言語 Python による PyPy を使った次世代の処理系開発
shoma h
PDF
PyPy 紹介
shoma h
PDF
Pythonと出会ったデザイナーの話 #PyLadiesTokyo
Yumi uniq Ishizaki
PDF
入門書を読み終わったらなにしよう? 〜Python と WebAPI の使い方から学ぶ次の一歩〜 / next-step-python-programing
Kei IWASAKI
PDF
Streamlitを用いた音響信号処理ダッシュボードの開発
Hiromasa Ohashi
PDF
Django で始める PyCharm 入門
kashew_nuts
「Kivyによるアプリケーション開発のすすめ」の勧め
Jun Okazaki
はじめてのShiny
Kazuya Wada
PyQtではじめるGUIプログラミング
Ransui Iso
PyconJP2017 Kivyによるアプリケーション開発のすすめ
Jun Okazaki
Introduction Pycon2010
(shibao)芝尾 (kouichiro)幸一郎
Python札幌 2012/06/17
Shinya Okano
プログラマーとの出会い - Hello, Programmer! at PyCon Kyushu 2022
Takayuki Shimizukawa
PythonとRによるデータ分析環境の構築と機械学習によるデータ認識
Katsuhiro Morishita
Python & PyConJP 2014 Report
gree_tech
PythonとRによるデータ分析環境の構築と機械学習によるデータ認識 第3版
Katsuhiro Morishita
Introduction of Python
Tomoya Nakayama
使えるDjango1.4
hirokiky
RでつくるWebアプリ~rApache編~
Kazuya Wada
Sphinx/reST
Ryo Maruyama
次世代言語 Python による PyPy を使った次世代の処理系開発
shoma h
PyPy 紹介
shoma h
Pythonと出会ったデザイナーの話 #PyLadiesTokyo
Yumi uniq Ishizaki
入門書を読み終わったらなにしよう? 〜Python と WebAPI の使い方から学ぶ次の一歩〜 / next-step-python-programing
Kei IWASAKI
Streamlitを用いた音響信号処理ダッシュボードの開発
Hiromasa Ohashi
Django で始める PyCharm 入門
kashew_nuts
Ad
PythonのGUI_2018 with NSEG
1.
長野Python会 with NSEG PythonのGUI@2018 2018/07/29
オカザキ
2.
自己紹介 • オカザキ • 職業:プログラマー •
http://twitter.com/dario_okazaki • Kivyの公式マニュアルの翻訳を有志でしてました (https://pyky.github.io/kivy-doc-ja/) • PyconJP2017 トーク「Kivyによるアプリケーション開発のすすめ」
3.
今日のアジェンダ • なぜGUIは初心向けでないといわれるか? • 個人的に今後PythonのGUIで注目しているもの •
実演 • tkinter • wxPython • Eel • Kivy • Pythonが使えるゲームエンジンについて • exe化について • まとめ
4.
GUIは今時必要か? • Webアプリでよくないか? • Webアプリだと困るもの •
ネット環境が悪いところ • ネットが使えない場所 • wav等の音声データを遅延なく動かしたい
5.
GUIは今時必要か? • Webアプリでよくないか? • Webアプリだと困るもの •
ネット環境が悪いところ • ネットが使えない場所 • wav等の音声データを遅延なく動かしたい
6.
Pythonの主要なGUI • tkiner • wxPython •
pySide2 • Kivy • flexx • cefpython • Eel • Toga • FLTK • PyGObject • pyQt • Pyglet • PyGUi • libavg • Pyforms etc・・・
7.
問題 なぜGUIは初心向けでないといわれるか?
8.
なぜGUIは初心向けでないといわれるか?(1/2) • ローカルのPC環境に依存している • インストールが難しい •
windowsだと同じOSなのにインストールで きてたりできなかったり • webは仮想化が進みインストールが簡単に なった • デフォルトだと見た目がいまいちなものが多い • カスタマイズすると画像が必要とか面倒
9.
なぜGUIは初心向けでないといわれるか?(2/2) • Pythonの場合以下の問題もある • どれが一番いい(簡単、将来性がある)のかよくわからない •
定番がない:例:WebフレームワークならDjango • GUIの実装方法が色々でてきた • 昔ながらのOSのAPIを操作 • Web系 • 配布が難しい • PyInstllerでexe化が可能だが問題多し
10.
個人的にGUIで注目しているライブラリを 紹介します
11.
個人的に今後PythonのGUIで注目しているもの • Eel • Kivy •
PySide2 • UnrealEngine(ゲームエンジン) • godot engine(ゲームエンジン)
12.
個人的にPythonのGUIで注目しているもの • tkinter • wxPython •
Eel • Kivy • PySide2 • UnrealEngine(ゲームエンジン) • godot engine(ゲームエンジン)
13.
コードで説明するライブリー • 以下のライブラリについては簡単なコードをも とに傾向を説明します。 • tkinter •
wxPython • Eel • Kivy
14.
説明するコードについて • 定期的にセンサーから取得した値をラベルで表示する • USBで始めるハードウェアモジュール •
温度/湿度/気圧を計測する 室内環境計測モジュール • @nonNoise さんが作ったキット、Pythonでセンサーからの値を取得できる • 技術書典4で購入 • PCにUSBで接続すると使用可能(ドライバーの手動インストール不要!)
15.
tkinter • 読み方:ティーキンター, ティーケーインター •
Pythonに標準で付属している • インストールが簡単 • 配布も簡単 • 見た目がいまいち • Python3.4以降から改善 • 機能面がいまいち • キャンバスの使い方などで学習コストが意外に高い
16.
tkinter(学習の参考になるもの) • 12歳からはじめる ゼロからの
Pythonゲームプロ グラミング教室 • 書籍のタイトルにTkinterと記載がないがTinkerの canvasを使用したサンプルコードが載っている • TkDocs(https://tkdocs.com/index.html) • 英語のサイトだが情報量多し
17.
tkinter(実演) • https://github.com/nonNoise/USB_StartUpModu le/blob/master/AN-USB- BME280/example/BME280_GUI.py
18.
wxPython • wxWidgets のPythonバインディング •
元はC++ • 公式サイト: https://www.wxpython.org/ • Phoenixバージョンという3系対応のプロジェクトあり • 3系対応時に仕様の変更が結構あったらしい • PyPlに対応したのでpipでインストールできるようになった • 使用実績は一時期多かった • Dropbox、Google Drive、BitTorrent など • wxGlade/ WxFormBuilderという、GUIツールキットがある • WindowsOSだと見た目が・・
19.
wxPython (学習の参考になるもの) • wxPython
GUIプログラミング • 絶版で価格はプレミアがついている。洋書だと定 期的に出版されている • 日本語だと体系だった情報があまりない状態
20.
wxPython(実演) • https://github.com/okajun35/AN-USB- BME280/tree/master/wxPython
21.
Eel • https://github.com/ChrisKnott/Eel/tree/mast er • Eelはナマズの意味 •
2017年11月ごろにGitHubに登録 • Starの数は2106 • Electron をシンプルにしたもの。 • 一時期はやった、Python(flask) + Electronより も簡単
22.
Eel(仕組み) • サーバー: Bottle(Python) •
フロントエンド:html+js (Chrom/Chromium上で動作) • webhockで連携 • PORT:8080で連携 PC内 サーバーサイドフロントエンド
23.
Eel(実演) • https://github.com/okajun35/AN-USB- BME280/tree/master/eel
24.
Eel(使い方) • インストールはpipでできる pip install
eel
25.
Eel(使い方) • 今回使用するアプリの構造 │ eel_label.py │ │─PyMCP2221A
※センサーを動かすためのドライバー │ │ ─web eel_test.html favicon.ico
26.
Eel(使い方) • python側での起動に関する設定 import eel eel.init('web')
#htmlが入っているフォルダのパス eel.start('eel_test.html', size=(300, 200)) # 開始する
27.
Eel(使い方) • Python側の関数をjavascriptに公開する設定 @eel.expose #
この関数をJavascriptに公開する def read_BME280():
28.
Eel(使い方) • html側でPython側に関数を公開する <script type="text/javascript"
src="/eel.js"></script>
29.
Eel(使い方) • html側でPython側に関数を公開する @eel.expose def read_BME280(): eel.output_temperature(temp
, hum ,preessure)
30.
Eel(メリット) • UI をhtml
Javascript で作れる • Javascript系の豊富なライブラリが使用できる • グラフなどが簡単に作れる • 業務でWeb系の仕事を作る人なら開発のハードルが低い • JSは自分で書く必要がある • 余談 JSを書きたくない人のためのライブラリ (Pythonからjsに変換する) • flexx (GUI) • Brython • pyinstller でexe化が可能
31.
Eel(デメリット) • Pythonだけで成立しない・・・ • html,css,javascript書きたくない・・・
32.
Kivy • https://github.com/kivy/kivy • Kevyはキウイを食べる鳥の事 •
Starの数は7863 • 最新は1.10.1(2018年7月リリース) • android、iosを含めたクロスプラットフォーム • Raspberry pyも動く
33.
Kivy(仕組み) • GraphicはOpenGL ESで描画 •
入力などはSDLで制御 • ※Windowsはver1.10でANGLE(OpenGl ESのDirectX実装)が選択で きるようになった
34.
Kivy(学習の参考になるもの) • 日本語の本は3冊出版されている • 最近出た本
Kivyプログラミング ―Pythonで作る マルチタッチアプリ― (実践Pythonライブラリー • https://www.amazon.co.jp/dp/4254128967/ • 国内で出たKivy関係の本では最もよい • 公式ドキュメントの翻訳(https://github.com/pyKy/kivy- doc-ja) • 最新に追従していないので参考にする際は英語の公式ドキュ メントにと読み比べてください • Python Kivyの使い方① ~Kv Languageの基本~ (https://qiita.com/dario_okazaki/items/7892b24fcfa787faface)
35.
Kivy(実績) • 仕事で使っている案件が数例あり • キュウリの仕分け3号機 •
TensorFlowでキュウリの仕分けを自動化する • 学習の際のUIにKivyとRaspberryPyを使用 • https://news.mynavi.jp/article/20180606-642208/ • http://workpiles.com/2017/05/ccb9-proto3-introduction/ • https://www.youtube.com/watch?v=XOjwWlSpLME
36.
Kivy(実演) • https://github.com/okajun35/AN-USB- BME280/tree/master/Kivy
37.
Kivy(構造) • Pythonファイル(機能部分)とKVファイル(UI)の2つ • Pythonファイルのみ •
KV言語が内部で記載されている • Pythonのみで構成
38.
Kivy(KV言語) • KV Languageともいう •
UI用のメタ言語 • Widget(UI)を簡単に記述できる • CSSとBootstrap(グリッド)の概念にちかい • ※KVを使用しなくてもUIは作れるが使用したほうがコードが簡潔に かける
39.
Kivy • どうしてマイナーなのか? • 動作速度について •
日本語の入力について • Kv Languageについて • マルチプラットフォームについて • 闇が深い・・・
40.
PySide2 • Qt for
Pythonともいう • ライセンスフリーなQT系のライブラリ • 開発は盛んにおこなわれている • https://wiki.qt.io/Qt_for_Python • http://blog.qt.io/blog/2018/05/04/hello-qt-for-python/ • https://www.qoosky.io/techs/3eccbf937d • https://dftalk.jp/?p=20768
41.
UnrealEngine4 • Epic Gamesより開発されたゲームエンジン •
「ドラゴンクエストXI 」(ゲーム)や「ローグ・ワン/スター・ ウォーズ・ストーリー」(映画)に使用 • ゲーム会社がPythonで動かせるものを開発 • https://github.com/20tab/UnrealEnginePython • EuroPython 2017 でもトークがある • AAA Games with Unreal Engine 4 and Python (https://www.youtube.com/watch?v=_38csFR5Hrw) • 公式でもPythonで動かせるように開発が進んでいる Setting up Collisions with Static Meshes in Blueprints and Python
42.
Godot Engine • MITライセンスなOSSのゲームエンジン Pythonで動かそうと開発している人がいる •
https://github.com/touilleMan/godot-python • EuroPython 2017 でもトークがある • Bringing Python to Godot game engine(https://www.youtube.com/watch?v=SK 0BtxHROdg)
43.
pyinstller • https://github.com/pyinstaller/pyinstaller • 使い方の参考 •
https://pythonhosted.org/PyInstaller/usage.html • https://www.pyinstaller.org/https://www.lisz • works.com/entry/pyinstall • オプション • --onefile :1ファイルにまとめた • -noconsole :起動時にログ出力などのコンソール画面を出さないようする • specファイル • ライブラリの依存関係などを含めたりする
44.
pyinstller(デメリット) • 起動が重い • spacファイルを作るのが手間がいる
45.
Nuitka • https://github.com/kayhayen/Nuitka • http://nuitka.net/ •
参考 • https://githubja.com/kayhayen/nuitka • https://qiita.com/junichi2/items/e7f2d899d1014167f8bc • Cコンパイラでバイナリ化しているらしい • 起動速度が早い • 情報がまだまだ少ない
46.
まとめ • PythonのGUIはライブラリが多いがどれがいい かを紹介した。 • Web系の開発の人はEelがお勧め •
見た目がそこそこいいものをデフォルトでつ くる場合はKivyがお勧め • 配布時のexe化に課題があり
Download