SlideShare uma empresa Scribd logo
1 de 20
DevFest #1
Python を用いたツール作成工数の最小化
November 27, 2015
1st Section, 1st Department, Global Business Development Center
Yutaka YK Katoh
ツール作りに
Python を推す理由
小学生小学生小学生
小学生
小学生
小学生
小学生
小学生
先生 先生
Raspberry Pi
Python
http://www.bbc.com/news
/technology-18301670
Python は小学生でも書ける!
Python を推す理由 その1
組み込み/IoT
クラウド
コンピューティング
ロボティクス 機械学習
Python は
用途やベンダーに縛られない!
Python を推す理由 その2
http://hrog.net/2015102624991.html
Python
395万円
Java
364万円
C#
355万円
Python を推す理由 その3
Python は
高い価値を生み出せる!
作る側の都合 使う側の都合
• とにかく速く作りたい (LL※で書きたい)
• 使い心地の良く生産性の高い開
発環境が欲しい (入力アシスト、静的解析、
リファクター等)
• ベンダーロックイン/フレームワー
クロックインはなるべく避けたい
• 使い方を調べる手間をかけたくな
い (理想は見ただけで起動方法がわかる
exe ファイル単体、可能なら GUI の提供)
• 幅広い動作環境で動いて欲しい
(特に OS バージョン依存の排除)
• ランタイムのセットアップに時間を
割きたくない (VB/VC/.NET Runtime,
JRE, Adobe AIR 等)
※ LL: 軽量言語。AWK, JS, Lua, Perl, Python, Ruby, PowerShell 等
開発環境
IDLE
JetBrains PyCharm
• 超軽い!Python + Tk で書かれている。
• シェルの利用や小物コードの編集に向いている。
• Python の標準 IDE として配布されている。
使い慣れた IDE (VS2015 や Eclipse 等) のアドオン・プラグインを入れるのが一番手っ取り早い。
Python 専用の IDE としては、以下の 2 つが有名。
• ちょっと重い!Java + Swing で書かれている。
• IntelliJ や Android Studio 等と同じ操作感。
• 機能面に関しては最強 IDE と言っても過言ではない。
オススメ
GUI ツールキット
多くの選択肢があって悩みどころ。ほとんどが Win/Mac/Linux のクロスプラットフォーム対応。
tkinker
• Tk の Python バインディング。
• IDLE はこれで書かれている。
• 古臭い見た目になる。
wxPython
• wxWidgets の Python バイン
ディング。
• 抽象度具合は Java の SWT に
近く、見た目はほぼネイティブ。
PyQt, PyGTK
• それぞれ Qt, GTK+ の Python バイン
ディング。
• どちらかというとこってりした UI 向け。
PyGame, Kivy
• アニメーションやマルチメディア処理が
簡単に書ける。
• 別にゲーム専用というわけではなく、ビ
ジネスアプリケーションも十分作れる。
オススメ
GUI ビルダー
wxPython には強力な GUI ビルダー “wxFormBuilder” が存在している。
DEMO
フレーム追加
レイアウト追加
ラベル追加
テキスト入力
コード自動生成
コード自動生成
ボタン追加 イベント名定義
プロジェクト設定
継承コード
出力設定継承クラス指定
ここにイベントの
処理を書くだけ
パッケージング
py2exe py2app
• Python プログラム一式を単一の
exe ファイルにパッケージング。
• Python ランタイムやライブラリが
exe ファイルに埋め込まれる。
• ico 形式のアイコンを設定可能。
• 設定ファイル例:
https://github.com/mikan/racm/
blob/master/src/build_exe.py
• Python プログラム一式を OS X の
app 形式にパッケージング。
• Python ランタイムやライブラリが app
パッケージ内にコピーされる。
• icns 形式のアイコンを設定可能。
• 設定ファイル例:
https://github.com/mikan/racm/blob/
master/src/build_app.py
スクリプトを単一の exe や app に変換。誰も Python で作ったことなんて気づかない。
My tool works
日常業務
• テスト準備ツール
• ビリングコード一括登録
(Streamline NX 用 / AE2 用)
• 雑多な検証コード
• 技術調査, 競合調査等
趣味
• お天気カメラ動態検知分類 CGI
(実家のお庭で運用中)
• Dynamic DNS 更新クライアント
オープンソースアプリ
• Remote ADB Connection Manager
Remote ADB Connection Manager
遠隔 ADB 接続時の操作ミスで、何度か他の
チームのマシンや評価マシンのアプリをぶっ飛
ばしてしまった反省を踏まえ、日曜プログラミン
グで制作。最近AP開Cでも使われだした模様。
今回紹介したツール群で制作。
Source & Download:
https://github.com/mikan/racm
• 遠隔 ADB 接続先管理機能
• 固定 ADB コマンド送信機能 (3件まで)
• APK インストール機能
22/02/2016 20

Mais conteúdo relacionado

Mais procurados

スクレイピングとPython
スクレイピングとPythonスクレイピングとPython
スクレイピングとPythonHironori Sekine
 
Pyconjp2014_implementations
Pyconjp2014_implementationsPyconjp2014_implementations
Pyconjp2014_implementationsmasahitojp
 
Python 2/3コード共存戦略 #osakapy
Python 2/3コード共存戦略 #osakapyPython 2/3コード共存戦略 #osakapy
Python 2/3コード共存戦略 #osakapy敦志 金谷
 
Django から各種チャットツールに通知するライブラリを作った話
Django から各種チャットツールに通知するライブラリを作った話Django から各種チャットツールに通知するライブラリを作った話
Django から各種チャットツールに通知するライブラリを作った話Yusuke Miyazaki
 
「Python言語」はじめの一歩 / First step of Python
「Python言語」はじめの一歩 / First step of Python「Python言語」はじめの一歩 / First step of Python
「Python言語」はじめの一歩 / First step of PythonTakanori Suzuki
 
今年使ってみて良かった、Pythonモジュール、パッケージ、ツール
今年使ってみて良かった、Pythonモジュール、パッケージ、ツール今年使ってみて良かった、Pythonモジュール、パッケージ、ツール
今年使ってみて良かった、Pythonモジュール、パッケージ、ツールaoshiman
 
Python札幌 2012/06/17
Python札幌 2012/06/17Python札幌 2012/06/17
Python札幌 2012/06/17Shinya Okano
 
High performance python computing for data science
High performance python computing for data scienceHigh performance python computing for data science
High performance python computing for data scienceTakami Sato
 
Python エンジニアの作り方 2011.08 #pyconjp
Python エンジニアの作り方 2011.08 #pyconjpPython エンジニアの作り方 2011.08 #pyconjp
Python エンジニアの作り方 2011.08 #pyconjpTakeshi Komiya
 
10分でわかるPythonの開発環境
10分でわかるPythonの開発環境10分でわかるPythonの開発環境
10分でわかるPythonの開発環境Hisao Soyama
 
Pynyumon03 LT
Pynyumon03 LTPynyumon03 LT
Pynyumon03 LTdrillan
 
Windowsにpythonをインストールしてみよう
WindowsにpythonをインストールしてみようWindowsにpythonをインストールしてみよう
WindowsにpythonをインストールしてみようKenji NAKAGAKI
 
PyQtではじめるGUIプログラミング
PyQtではじめるGUIプログラミングPyQtではじめるGUIプログラミング
PyQtではじめるGUIプログラミングRansui Iso
 
PyCon JP 2014 plone terada
PyCon JP 2014 plone teradaPyCon JP 2014 plone terada
PyCon JP 2014 plone teradaManabu Terada
 
RubyエンジニアがPythonをdisるためにPythonを勉強してみた
RubyエンジニアがPythonをdisるためにPythonを勉強してみたRubyエンジニアがPythonをdisるためにPythonを勉強してみた
RubyエンジニアがPythonをdisるためにPythonを勉強してみたYusuke Kon
 
2017/12/21 虎の穴 Python勉強会
2017/12/21 虎の穴 Python勉強会2017/12/21 虎の穴 Python勉強会
2017/12/21 虎の穴 Python勉強会虎の穴 開発室
 
211120 他人の書いたPythonスクリプトをステップ実行で理解する
211120 他人の書いたPythonスクリプトをステップ実行で理解する211120 他人の書いたPythonスクリプトをステップ実行で理解する
211120 他人の書いたPythonスクリプトをステップ実行で理解するTakuya Nishimoto
 
Pythonスタートアップ勉強会201109 python入門
Pythonスタートアップ勉強会201109 python入門Pythonスタートアップ勉強会201109 python入門
Pythonスタートアップ勉強会201109 python入門Takayuki Shimizukawa
 

Mais procurados (20)

スクレイピングとPython
スクレイピングとPythonスクレイピングとPython
スクレイピングとPython
 
Pythonでpdfをいじってみる
PythonでpdfをいじってみるPythonでpdfをいじってみる
Pythonでpdfをいじってみる
 
Pyconjp2014_implementations
Pyconjp2014_implementationsPyconjp2014_implementations
Pyconjp2014_implementations
 
Python 2/3コード共存戦略 #osakapy
Python 2/3コード共存戦略 #osakapyPython 2/3コード共存戦略 #osakapy
Python 2/3コード共存戦略 #osakapy
 
Django から各種チャットツールに通知するライブラリを作った話
Django から各種チャットツールに通知するライブラリを作った話Django から各種チャットツールに通知するライブラリを作った話
Django から各種チャットツールに通知するライブラリを作った話
 
「Python言語」はじめの一歩 / First step of Python
「Python言語」はじめの一歩 / First step of Python「Python言語」はじめの一歩 / First step of Python
「Python言語」はじめの一歩 / First step of Python
 
今年使ってみて良かった、Pythonモジュール、パッケージ、ツール
今年使ってみて良かった、Pythonモジュール、パッケージ、ツール今年使ってみて良かった、Pythonモジュール、パッケージ、ツール
今年使ってみて良かった、Pythonモジュール、パッケージ、ツール
 
Python札幌 2012/06/17
Python札幌 2012/06/17Python札幌 2012/06/17
Python札幌 2012/06/17
 
High performance python computing for data science
High performance python computing for data scienceHigh performance python computing for data science
High performance python computing for data science
 
Python エンジニアの作り方 2011.08 #pyconjp
Python エンジニアの作り方 2011.08 #pyconjpPython エンジニアの作り方 2011.08 #pyconjp
Python エンジニアの作り方 2011.08 #pyconjp
 
10分でわかるPythonの開発環境
10分でわかるPythonの開発環境10分でわかるPythonの開発環境
10分でわかるPythonの開発環境
 
Pynyumon03 LT
Pynyumon03 LTPynyumon03 LT
Pynyumon03 LT
 
Windowsにpythonをインストールしてみよう
WindowsにpythonをインストールしてみようWindowsにpythonをインストールしてみよう
Windowsにpythonをインストールしてみよう
 
PyQtではじめるGUIプログラミング
PyQtではじめるGUIプログラミングPyQtではじめるGUIプログラミング
PyQtではじめるGUIプログラミング
 
PyCon JP 2014 plone terada
PyCon JP 2014 plone teradaPyCon JP 2014 plone terada
PyCon JP 2014 plone terada
 
RubyエンジニアがPythonをdisるためにPythonを勉強してみた
RubyエンジニアがPythonをdisるためにPythonを勉強してみたRubyエンジニアがPythonをdisるためにPythonを勉強してみた
RubyエンジニアがPythonをdisるためにPythonを勉強してみた
 
PyCharm入門
PyCharm入門PyCharm入門
PyCharm入門
 
2017/12/21 虎の穴 Python勉強会
2017/12/21 虎の穴 Python勉強会2017/12/21 虎の穴 Python勉強会
2017/12/21 虎の穴 Python勉強会
 
211120 他人の書いたPythonスクリプトをステップ実行で理解する
211120 他人の書いたPythonスクリプトをステップ実行で理解する211120 他人の書いたPythonスクリプトをステップ実行で理解する
211120 他人の書いたPythonスクリプトをステップ実行で理解する
 
Pythonスタートアップ勉強会201109 python入門
Pythonスタートアップ勉強会201109 python入門Pythonスタートアップ勉強会201109 python入門
Pythonスタートアップ勉強会201109 python入門
 

Semelhante a GBDC 勉強会 #1 Python を用いたツール作成工数の最小化

Python for Beginners ( #PyLadiesKyoto Meetup )
Python for Beginners ( #PyLadiesKyoto Meetup )Python for Beginners ( #PyLadiesKyoto Meetup )
Python for Beginners ( #PyLadiesKyoto Meetup )Ai Makabi
 
ハードウェア初心者のwebエンジニアがIoT製作に取り組んだ話
ハードウェア初心者のwebエンジニアがIoT製作に取り組んだ話ハードウェア初心者のwebエンジニアがIoT製作に取り組んだ話
ハードウェア初心者のwebエンジニアがIoT製作に取り組んだ話Haruki Hinode
 
[PyConJP2019]Pythonで切り開く新しい農業
[PyConJP2019]Pythonで切り開く新しい農業[PyConJP2019]Pythonで切り開く新しい農業
[PyConJP2019]Pythonで切り開く新しい農業Makoto Koike
 
関西Itコミュニティ集まれ!デブサミ名物コミュニティlt大会(発表版)
関西Itコミュニティ集まれ!デブサミ名物コミュニティlt大会(発表版)関西Itコミュニティ集まれ!デブサミ名物コミュニティlt大会(発表版)
関西Itコミュニティ集まれ!デブサミ名物コミュニティlt大会(発表版)rip jyr
 
scikit-learnを用いた機械学習チュートリアル
scikit-learnを用いた機械学習チュートリアルscikit-learnを用いた機械学習チュートリアル
scikit-learnを用いた機械学習チュートリアル敦志 金谷
 
NetOps Coding#1 のお知らせ
NetOps Coding#1 のお知らせNetOps Coding#1 のお知らせ
NetOps Coding#1 のお知らせTaiji Tsuchiya
 
東大大学院 戦略ソフトウェア特論2021「ロボットで世界を計算可能にする」海野裕也
東大大学院 戦略ソフトウェア特論2021「ロボットで世界を計算可能にする」海野裕也東大大学院 戦略ソフトウェア特論2021「ロボットで世界を計算可能にする」海野裕也
東大大学院 戦略ソフトウェア特論2021「ロボットで世界を計算可能にする」海野裕也Preferred Networks
 
S06 t1 python学習奮闘記#4
S06 t1 python学習奮闘記#4S06 t1 python学習奮闘記#4
S06 t1 python学習奮闘記#4Takeshi Akutsu
 
IoT案件を70件やってみて分かった事
IoT案件を70件やってみて分かった事IoT案件を70件やってみて分かった事
IoT案件を70件やってみて分かった事Koichi Sasaki
 
今時のオンプレなgithubクローン環境構築
今時のオンプレなgithubクローン環境構築今時のオンプレなgithubクローン環境構築
今時のオンプレなgithubクローン環境構築You&I
 
RaspberryPiとawsで取組んだ自作IoT
RaspberryPiとawsで取組んだ自作IoTRaspberryPiとawsで取組んだ自作IoT
RaspberryPiとawsで取組んだ自作IoTSaito5656
 
ゼロから学ぶPython勉強会
ゼロから学ぶPython勉強会ゼロから学ぶPython勉強会
ゼロから学ぶPython勉強会sekikazu
 
TFLite_and_PyTorch_Mobile
TFLite_and_PyTorch_MobileTFLite_and_PyTorch_Mobile
TFLite_and_PyTorch_Mobileyusuke shibui
 
Python界隈の翻訳プロジェクト
Python界隈の翻訳プロジェクトPython界隈の翻訳プロジェクト
Python界隈の翻訳プロジェクトTetsuya Morimoto
 
Quantum teleportation
Quantum teleportationQuantum teleportation
Quantum teleportationYuuOkano
 

Semelhante a GBDC 勉強会 #1 Python を用いたツール作成工数の最小化 (20)

Why python
Why pythonWhy python
Why python
 
Why python
Why pythonWhy python
Why python
 
Why python
Why pythonWhy python
Why python
 
Why python
Why pythonWhy python
Why python
 
Python for Beginners ( #PyLadiesKyoto Meetup )
Python for Beginners ( #PyLadiesKyoto Meetup )Python for Beginners ( #PyLadiesKyoto Meetup )
Python for Beginners ( #PyLadiesKyoto Meetup )
 
ハードウェア初心者のwebエンジニアがIoT製作に取り組んだ話
ハードウェア初心者のwebエンジニアがIoT製作に取り組んだ話ハードウェア初心者のwebエンジニアがIoT製作に取り組んだ話
ハードウェア初心者のwebエンジニアがIoT製作に取り組んだ話
 
[PyConJP2019]Pythonで切り開く新しい農業
[PyConJP2019]Pythonで切り開く新しい農業[PyConJP2019]Pythonで切り開く新しい農業
[PyConJP2019]Pythonで切り開く新しい農業
 
関西Itコミュニティ集まれ!デブサミ名物コミュニティlt大会(発表版)
関西Itコミュニティ集まれ!デブサミ名物コミュニティlt大会(発表版)関西Itコミュニティ集まれ!デブサミ名物コミュニティlt大会(発表版)
関西Itコミュニティ集まれ!デブサミ名物コミュニティlt大会(発表版)
 
scikit-learnを用いた機械学習チュートリアル
scikit-learnを用いた機械学習チュートリアルscikit-learnを用いた機械学習チュートリアル
scikit-learnを用いた機械学習チュートリアル
 
NetOps Coding#1 のお知らせ
NetOps Coding#1 のお知らせNetOps Coding#1 のお知らせ
NetOps Coding#1 のお知らせ
 
東大大学院 戦略ソフトウェア特論2021「ロボットで世界を計算可能にする」海野裕也
東大大学院 戦略ソフトウェア特論2021「ロボットで世界を計算可能にする」海野裕也東大大学院 戦略ソフトウェア特論2021「ロボットで世界を計算可能にする」海野裕也
東大大学院 戦略ソフトウェア特論2021「ロボットで世界を計算可能にする」海野裕也
 
S06 t1 python学習奮闘記#4
S06 t1 python学習奮闘記#4S06 t1 python学習奮闘記#4
S06 t1 python学習奮闘記#4
 
IoT案件を70件やってみて分かった事
IoT案件を70件やってみて分かった事IoT案件を70件やってみて分かった事
IoT案件を70件やってみて分かった事
 
今時のオンプレなgithubクローン環境構築
今時のオンプレなgithubクローン環境構築今時のオンプレなgithubクローン環境構築
今時のオンプレなgithubクローン環境構築
 
RaspberryPiとawsで取組んだ自作IoT
RaspberryPiとawsで取組んだ自作IoTRaspberryPiとawsで取組んだ自作IoT
RaspberryPiとawsで取組んだ自作IoT
 
ゼロから学ぶPython勉強会
ゼロから学ぶPython勉強会ゼロから学ぶPython勉強会
ゼロから学ぶPython勉強会
 
TFLite_and_PyTorch_Mobile
TFLite_and_PyTorch_MobileTFLite_and_PyTorch_Mobile
TFLite_and_PyTorch_Mobile
 
Python界隈の翻訳プロジェクト
Python界隈の翻訳プロジェクトPython界隈の翻訳プロジェクト
Python界隈の翻訳プロジェクト
 
S08 t0 orientation
S08 t0 orientationS08 t0 orientation
S08 t0 orientation
 
Quantum teleportation
Quantum teleportationQuantum teleportation
Quantum teleportation
 

Mais de Yutaka Kato

かとうの Kotlin 講座 こってり版
かとうの Kotlin 講座 こってり版かとうの Kotlin 講座 こってり版
かとうの Kotlin 講座 こってり版Yutaka Kato
 
Slack の過去ログ倉庫を建てよう (2017 合宿 LT)
Slack の過去ログ倉庫を建てよう (2017 合宿 LT)Slack の過去ログ倉庫を建てよう (2017 合宿 LT)
Slack の過去ログ倉庫を建てよう (2017 合宿 LT)Yutaka Kato
 
AOSN読書会 年次活動報告 2017
AOSN読書会 年次活動報告 2017AOSN読書会 年次活動報告 2017
AOSN読書会 年次活動報告 2017Yutaka Kato
 
Vaadin 8 によるオール java web アプリ開発の仕組みと実践
Vaadin 8 によるオール java web アプリ開発の仕組みと実践Vaadin 8 によるオール java web アプリ開発の仕組みと実践
Vaadin 8 によるオール java web アプリ開発の仕組みと実践Yutaka Kato
 
Present でスライドを作ろう
Present でスライドを作ろうPresent でスライドを作ろう
Present でスライドを作ろうYutaka Kato
 
データで見るAOSN読書会 (2016 合宿 LT)
データで見るAOSN読書会 (2016 合宿 LT)データで見るAOSN読書会 (2016 合宿 LT)
データで見るAOSN読書会 (2016 合宿 LT)Yutaka Kato
 
GBDC 勉強会 #6 Java イベントレポート 2016
GBDC 勉強会 #6 Java イベントレポート 2016GBDC 勉強会 #6 Java イベントレポート 2016
GBDC 勉強会 #6 Java イベントレポート 2016Yutaka Kato
 
APDC 勉強会 #4 動的解析 - NASA から学ぶ超高信頼ソフトウェア技術
APDC 勉強会 #4 動的解析 - NASA から学ぶ超高信頼ソフトウェア技術APDC 勉強会 #4 動的解析 - NASA から学ぶ超高信頼ソフトウェア技術
APDC 勉強会 #4 動的解析 - NASA から学ぶ超高信頼ソフトウェア技術Yutaka Kato
 
GBDC 勉強会 #2 Android Studio 実践レポート
GBDC 勉強会 #2 Android Studio 実践レポートGBDC 勉強会 #2 Android Studio 実践レポート
GBDC 勉強会 #2 Android Studio 実践レポートYutaka Kato
 

Mais de Yutaka Kato (9)

かとうの Kotlin 講座 こってり版
かとうの Kotlin 講座 こってり版かとうの Kotlin 講座 こってり版
かとうの Kotlin 講座 こってり版
 
Slack の過去ログ倉庫を建てよう (2017 合宿 LT)
Slack の過去ログ倉庫を建てよう (2017 合宿 LT)Slack の過去ログ倉庫を建てよう (2017 合宿 LT)
Slack の過去ログ倉庫を建てよう (2017 合宿 LT)
 
AOSN読書会 年次活動報告 2017
AOSN読書会 年次活動報告 2017AOSN読書会 年次活動報告 2017
AOSN読書会 年次活動報告 2017
 
Vaadin 8 によるオール java web アプリ開発の仕組みと実践
Vaadin 8 によるオール java web アプリ開発の仕組みと実践Vaadin 8 によるオール java web アプリ開発の仕組みと実践
Vaadin 8 によるオール java web アプリ開発の仕組みと実践
 
Present でスライドを作ろう
Present でスライドを作ろうPresent でスライドを作ろう
Present でスライドを作ろう
 
データで見るAOSN読書会 (2016 合宿 LT)
データで見るAOSN読書会 (2016 合宿 LT)データで見るAOSN読書会 (2016 合宿 LT)
データで見るAOSN読書会 (2016 合宿 LT)
 
GBDC 勉強会 #6 Java イベントレポート 2016
GBDC 勉強会 #6 Java イベントレポート 2016GBDC 勉強会 #6 Java イベントレポート 2016
GBDC 勉強会 #6 Java イベントレポート 2016
 
APDC 勉強会 #4 動的解析 - NASA から学ぶ超高信頼ソフトウェア技術
APDC 勉強会 #4 動的解析 - NASA から学ぶ超高信頼ソフトウェア技術APDC 勉強会 #4 動的解析 - NASA から学ぶ超高信頼ソフトウェア技術
APDC 勉強会 #4 動的解析 - NASA から学ぶ超高信頼ソフトウェア技術
 
GBDC 勉強会 #2 Android Studio 実践レポート
GBDC 勉強会 #2 Android Studio 実践レポートGBDC 勉強会 #2 Android Studio 実践レポート
GBDC 勉強会 #2 Android Studio 実践レポート
 

GBDC 勉強会 #1 Python を用いたツール作成工数の最小化