Download free for 30 days
Sign in
Upload
Language (EN)
Support
Business
Mobile
Social Media
Marketing
Technology
Art & Photos
Career
Design
Education
Presentations & Public Speaking
Government & Nonprofit
Healthcare
Internet
Law
Leadership & Management
Automotive
Engineering
Software
Recruiting & HR
Retail
Sales
Services
Science
Small Business & Entrepreneurship
Food
Environment
Economy & Finance
Data & Analytics
Investor Relations
Sports
Spiritual
News & Politics
Travel
Self Improvement
Real Estate
Entertainment & Humor
Health & Medicine
Devices & Hardware
Lifestyle
Change Language
Language
English
Español
Português
Français
Deutsche
Cancel
Save
EN
Uploaded by
Akinori Kohno
8,269 views
データ分析スクリプトのツール化入門 - PyConJP 2016
PyConJP2016トーク Pythonによるデータ分析スクリプトのEXE化・GUI付与
Data & Analytics
◦
Read more
11
Save
Share
Embed
Embed presentation
1
/ 77
2
/ 77
3
/ 77
4
/ 77
5
/ 77
6
/ 77
7
/ 77
8
/ 77
9
/ 77
10
/ 77
11
/ 77
12
/ 77
13
/ 77
14
/ 77
15
/ 77
16
/ 77
17
/ 77
18
/ 77
19
/ 77
20
/ 77
21
/ 77
22
/ 77
23
/ 77
24
/ 77
25
/ 77
26
/ 77
27
/ 77
28
/ 77
29
/ 77
30
/ 77
31
/ 77
32
/ 77
33
/ 77
34
/ 77
35
/ 77
36
/ 77
37
/ 77
38
/ 77
39
/ 77
40
/ 77
41
/ 77
42
/ 77
43
/ 77
44
/ 77
45
/ 77
46
/ 77
47
/ 77
48
/ 77
49
/ 77
50
/ 77
51
/ 77
52
/ 77
53
/ 77
54
/ 77
55
/ 77
56
/ 77
57
/ 77
58
/ 77
59
/ 77
60
/ 77
61
/ 77
62
/ 77
63
/ 77
64
/ 77
65
/ 77
66
/ 77
67
/ 77
68
/ 77
69
/ 77
70
/ 77
71
/ 77
72
/ 77
73
/ 77
74
/ 77
75
/ 77
76
/ 77
77
/ 77
More Related Content
PPTX
深層学習の数理
by
Taiji Suzuki
PDF
三次元点群を取り扱うニューラルネットワークのサーベイ
by
Naoya Chiba
PDF
三次元表現まとめ(深層学習を中心に)
by
Tomohiro Motoda
PDF
【メタサーベイ】Neural Fields
by
cvpaper. challenge
PPTX
【論文紹介】How Powerful are Graph Neural Networks?
by
Masanao Ochi
PDF
EPro-PnP: Generalized End-to-End Probabilistic Perspective-n-Points for Monoc...
by
Kazuyuki Miyazawa
PPTX
統計分析
by
大貴 末廣
PDF
9 可視化
by
Seiichi Uchida
深層学習の数理
by
Taiji Suzuki
三次元点群を取り扱うニューラルネットワークのサーベイ
by
Naoya Chiba
三次元表現まとめ(深層学習を中心に)
by
Tomohiro Motoda
【メタサーベイ】Neural Fields
by
cvpaper. challenge
【論文紹介】How Powerful are Graph Neural Networks?
by
Masanao Ochi
EPro-PnP: Generalized End-to-End Probabilistic Perspective-n-Points for Monoc...
by
Kazuyuki Miyazawa
統計分析
by
大貴 末廣
9 可視化
by
Seiichi Uchida
What's hot
PDF
機械学習チュートリアル@Jubatus Casual Talks
by
Yuya Unno
PDF
Collaborativefilteringwith r
by
Teito Nakagawa
PPTX
Python基礎その1
by
大貴 末廣
PDF
変分推論法(変分ベイズ法)(PRML第10章)
by
Takao Yamanaka
PDF
エキスパートPythonプログラミング改訂3版の読みどころ
by
Takayuki Shimizukawa
PDF
StanとRでベイズ統計モデリング読書会 Chapter 7(7.6-7.9) 回帰分析の悩みどころ ~統計の力で歌うまになりたい~
by
nocchi_airport
PPTX
CVPR2018 pix2pixHD論文紹介 (CV勉強会@関東)
by
Tenki Lee
PDF
【DL輪読会】NeRF-VAE: A Geometry Aware 3D Scene Generative Model
by
Deep Learning JP
PPTX
距離とクラスタリング
by
大貴 末廣
PDF
数理モデリングからはじめるPython数理最適化 PyData.Tokyo 2017/6/28 Retty Inc. Iwanaga Jiro
by
Jiro Iwanaga
PDF
Marketing×Python/Rで頑張れる事例16本ノック
by
Teruyuki Sakaue
PDF
Deep Learningと画像認識 ~歴史・理論・実践~
by
nlab_utokyo
PDF
IIBMP2016 深層生成モデルによる表現学習
by
Preferred Networks
PPTX
You Only Look One-level Featureの解説と見せかけた物体検出のよもやま話
by
Yusuke Uchida
PDF
機械学習で泣かないためのコード設計
by
Takahiro Kubo
PDF
SSII2019TS: Shall We GANs? ~GANの基礎から最近の研究まで~
by
SSII
PPTX
強化学習初心者が強化学習でニューラルネットワークの設計を自動化してみたい
by
Takuma Wakamori
PPTX
DeNAにおける先端AI技術活用のチャレンジ
by
Yusuke Uchida
PDF
モデルアーキテクチャ観点からのDeep Neural Network高速化
by
Yusuke Uchida
PDF
3分でわかる多項分布とディリクレ分布
by
Junya Saito
機械学習チュートリアル@Jubatus Casual Talks
by
Yuya Unno
Collaborativefilteringwith r
by
Teito Nakagawa
Python基礎その1
by
大貴 末廣
変分推論法(変分ベイズ法)(PRML第10章)
by
Takao Yamanaka
エキスパートPythonプログラミング改訂3版の読みどころ
by
Takayuki Shimizukawa
StanとRでベイズ統計モデリング読書会 Chapter 7(7.6-7.9) 回帰分析の悩みどころ ~統計の力で歌うまになりたい~
by
nocchi_airport
CVPR2018 pix2pixHD論文紹介 (CV勉強会@関東)
by
Tenki Lee
【DL輪読会】NeRF-VAE: A Geometry Aware 3D Scene Generative Model
by
Deep Learning JP
距離とクラスタリング
by
大貴 末廣
数理モデリングからはじめるPython数理最適化 PyData.Tokyo 2017/6/28 Retty Inc. Iwanaga Jiro
by
Jiro Iwanaga
Marketing×Python/Rで頑張れる事例16本ノック
by
Teruyuki Sakaue
Deep Learningと画像認識 ~歴史・理論・実践~
by
nlab_utokyo
IIBMP2016 深層生成モデルによる表現学習
by
Preferred Networks
You Only Look One-level Featureの解説と見せかけた物体検出のよもやま話
by
Yusuke Uchida
機械学習で泣かないためのコード設計
by
Takahiro Kubo
SSII2019TS: Shall We GANs? ~GANの基礎から最近の研究まで~
by
SSII
強化学習初心者が強化学習でニューラルネットワークの設計を自動化してみたい
by
Takuma Wakamori
DeNAにおける先端AI技術活用のチャレンジ
by
Yusuke Uchida
モデルアーキテクチャ観点からのDeep Neural Network高速化
by
Yusuke Uchida
3分でわかる多項分布とディリクレ分布
by
Junya Saito
Similar to データ分析スクリプトのツール化入門 - PyConJP 2016
PDF
DATUM STUDIO PyCon2016 Turorial
by
Tatsuya Tojima
PDF
JVM上で動くPython処理系実装のススメ
by
Yoshiaki Shibutani
PPTX
Wacode5thでのpython講義資料
by
丈 宮本
PDF
High performance python computing for data science
by
Takami Sato
PDF
データ分析-の波乗り遅れた気がしてる人のための Python×データ分析の超基礎の基礎 v1.0-20160831
by
Yusaku Kinoshita
PDF
S02 t2 my_historyofpythonlearning
by
Takeshi Akutsu
PDF
chapter6
by
ymk0424
PDF
Python 機械学習プログラミング データ分析演習編
by
Etsuji Nakai
DATUM STUDIO PyCon2016 Turorial
by
Tatsuya Tojima
JVM上で動くPython処理系実装のススメ
by
Yoshiaki Shibutani
Wacode5thでのpython講義資料
by
丈 宮本
High performance python computing for data science
by
Takami Sato
データ分析-の波乗り遅れた気がしてる人のための Python×データ分析の超基礎の基礎 v1.0-20160831
by
Yusaku Kinoshita
S02 t2 my_historyofpythonlearning
by
Takeshi Akutsu
chapter6
by
ymk0424
Python 機械学習プログラミング データ分析演習編
by
Etsuji Nakai
Recently uploaded
PPTX
【Qlik 医療データ活用勉強会】医療の質可視化アプリの公開-その2- 20260128
by
QlikPresalesJapan
PPTX
KNIMEで奈良の気温を調べてみた_2026_0207_KNIMEST.pptx
by
syk zassou
PDF
EspressReport Enterprise Server ホワイトペーパー
by
株式会社クライム
PPTX
What's New In Qlik ~ 2025年12月&2026年1月リリース最新機能のご紹介 ~
by
QlikPresalesJapan
PDF
研究資料ーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーー
by
4fqg857pxh
PPTX
KNIMEは地味だが役に立つ_2026_0207_DojoMeeting_Kansai_#1.pptx
by
syk zassou
【Qlik 医療データ活用勉強会】医療の質可視化アプリの公開-その2- 20260128
by
QlikPresalesJapan
KNIMEで奈良の気温を調べてみた_2026_0207_KNIMEST.pptx
by
syk zassou
EspressReport Enterprise Server ホワイトペーパー
by
株式会社クライム
What's New In Qlik ~ 2025年12月&2026年1月リリース最新機能のご紹介 ~
by
QlikPresalesJapan
研究資料ーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーー
by
4fqg857pxh
KNIMEは地味だが役に立つ_2026_0207_DojoMeeting_Kansai_#1.pptx
by
syk zassou
データ分析スクリプトのツール化入門 - PyConJP 2016
1.
データ分析スクリプトの ツール化入門 PyConJP 2016 どんあき @dondokono
2.
自己紹介 なまえ :どんあき @dondokono 何してる人 :金融機関でリスク管理 デリバティブ関連のデータ分析 バックグラウンド:素粒子理論やってました プログラミング得意じゃないです… Python歴
:1年とちょっと 社内で布教中 1 息子 可愛いです笑
3.
本発表の内容は 個人の見解であり、 所属する組織・団体の 公式見解ではありません また登場する人物は(ry 2
4.
はじめに… 3 この分析業務効率化できそうだな せっかくなのでPythonで書いてみよう (豊富なパッケージですぐ作れるし)
5.
4 こんなの作ってみたけど どう? え?もうできたんですか!! でもこれどうやって 動くんですか? 私 同僚など
6.
5 えっと、、、 Pythonをインストールして… Python入ってませんよ 入れるの社内的に 結構面倒で… 私 同僚など
7.
_人人人人人人人人_ > 入れるの面倒 <  ̄Y^Y^Y^Y^Y^Y^Y ̄ 6
8.
7 そのあと コマンドラインから実行… コマンドライン…? あの黒い画面ですか? なにそれ怖い! 私 同僚など
9.
あの黒い画面 8
10.
_人人人人人人人人_ > なにそれ怖い <  ̄Y^Y^Y^Y^Y^Y^Y ̄ 9
11.
10 お堅い社内で Python布教するなんて アカンかったんや…
12.
その悩み(だいたい)解決できます! 11
13.
本日の流れ ・Pythonがインストールされてない環境で動かす Pyinstallerを主に使用します ・コマンドラインでなくGUI上から動かす PySide, QtDesignerを主に使用します 12
14.
注意点 (どの場合でも共通ですが) 各パッケージのバージョン情報に注意 ネット上の情報も古いものが多く、 記事や質問の日時をよく見ながら確認しましょう 13
15.
Pythonが無い環境で動かす...? Windowsの場合、EXEにしちゃいます = フリージング こんな感じ Pythonインストールしてない環境でも Pythonで書いたものが動く! 14
16.
Pyinstallerについて 15 • 最近でも頻繁にメンテされているフリージングパッケージ • Github:
https://github.com/pyinstaller/pyinstaller • Python 2.7, 3.3-3.5まで対応 • Windows, Mac OSでも使用可能 フリージングしたプラットフォーム上でのみ動作 • メジャーなパッケージはバンドル Libraries like PyQt5, PyQt4, PySide, wxPython, matplotlib or Django are fully supported (公式より引用) pandas, scipy, scikit-learn, seabornなども動作 • Stackoverflowなどでの情報が多い ←これ重要
17.
他のPythonのフリージング関連パッケージ • Py2exe (2.7,
3.4) https://pypi.python.org/pypi/py2exe 元々Python2系で有名だったもの、軽量・高速 2014-10-21以降更新もなく辛い エラーでまくる • cx_freeze (2.7, 3.4) http://cx-freeze.readthedocs.io/en/latest/index.html 2014-12-26が最後のアップデート setup関連のscriptは頑張って書く必要がある印象 16
18.
というわけで Pyinstallerが オススメです 17
19.
欠点もあります… • ファイルサイズがでかい… Importするパッケージを全部取り込む • 起動が遅い… EXE実行後、解凍処理が内部で走る importが多いと数十秒立ち上がるまでにかかることも… 18
20.
インストール前準備 今回は下記環境での動作確認を行っています Windows 10 64bit Anaconda
4.1.1 (64bit) condaで仮想的な作業環境を構築することを推奨します あとnumpyとかscipy入れるの面倒 PySideの都合で3.4ですが3.5でもいけます… Mac OSでもフリージングしてアプリにすることもできます 本発表では説明しません (発表者Macなくせに) 19
21.
インストール時の諸注意(Windows) 環境が汚くなる可能性があるのでcondaで別環境構築推奨 Anaconda利用時のsetuptoolsのバージョンに注意 19.2にダウングレード > conda install
setuptools==19.2 ここではpipでなくcondaでやることがポイント レジストリ書換え要求が出ることがありますがスルーしても使えます 20
22.
インストール時の諸注意(pyenv) Mac OS, Linux系でpyenvを使用されている場合 次でinstallしましょう https://github.com/pyinstaller/pyinstaller/wiki/FAQ >
env PYTHON_CONFIGURE_OPTS="--enable-framework" pyenv install 3.5.X 21
23.
Hello World! Helloと返してくるだけのスクリプト まずはこれをフリーズ! 22 hello.py
24.
フリーズ3分クッキング スクリプトを用意して以下のコマンドでチーン > pyinstaller hello.py
--onefile 23 ここに完成品
25.
ほら、簡単でしょう 24
26.
補足 • 気長に固まるのを待ちます • import量によるけど数分から10分程 •
exeが出来てても実行するとエラーが出たり… 根気よくエラー潰しが必要なパッケージも 25
27.
便利なオプション --onefile 単一のexeファイルになるようにまとめてくれる かさばらないけど、デカイ --noconsole コマンドプロンプトがデフォルトで表示されなくなる 黒い画面恐怖症の人向けにも安心 --clean 前回のフリーズ関連ファイルがある場合はこちらを使用 もしくは手でdist, buildファイルを消しておきましょう 26
28.
欠点:デカイ 27 • 先ほどのhelloスクリプト • パッケージ追加時 import
pandasだけ追記した場合 で、デカイ なので手放しで使いまくれるわけでもなく…
29.
閑話休題 28
30.
せっかくなので流行り物を試したい! よっしゃ! TheanoとPymc3をフリージングできれば Deep Learning でもMCMCでも やりたい放題や!! 29
31.
今回の調査で我々は… 30 何の成果も 得られませんでしたぁぁ!!
32.
コンパイルを必要とするパッケージは鬼門… 31 誰か出来たら教えてください…
33.
32 入門レベルらしく Scikit-learn使います! それでも幾つかハマるポイントが…
34.
データ分析スクリプト 33 http://scikit-learn.org/stable/auto_examples/cluster/plot_kmeans_assumptions.html#example- cluster-plot-kmeans-assumptions-py k-meansのクラスタリングを行う例 • パラメータ:k • 2次元のインプットCSV を引数に取るスクリプト sklearn_example.py
35.
こんな感じの結果が出ます 34 • 黒い画面から実行 • cluster数
= 3の場合の例 色で3種類に区分けされた右図が出る
36.
それではフリーズ実行! 35 こちらも同様に > pyinstaller sklearn_example.py
--onefile で…
37.
完成!?…のはずが • EXEを実行してみると幾つかエラー • typedefsモジュールが見つからない scikit-learnのclusters/neighbors/typedefs.pydのことを指してるらしい 組み込むときは事前にsklearn.neighbors.typedefs.pydにリネーム 場所→
/anaconda3/env/<env_name>/Lib/site_packages/sklearn/neighbors/ • Intel MKL XXXが見つからない 以下にあるmkl_XXX.dllを組み込む 場所→ /anaconda3/env/<env_name>/Library/bin/ 36
38.
(よくある)エラー対策 • pyinstallerが見つけられないもの • (自動で作られる)specファイルに明示的に記載 onefileにするときに一緒にまとめてくれる •
デバッグ時は--onedirオプションで確認するのをオススメ • 以下は今回の例 37 sklearn_example.spec
39.
無事起動 • specファイルに指定して実行する場合 > pyinstaller
sklearn_example.spec で実行 通常は自動生成されoptionもここに埋め込まれる 38
40.
やりました! 39
41.
40 何か忘れているような…
42.
41 そのあと コマンドラインから実行… コマンドライン…? あの黒い画面ですか? なにそれ怖い! 私 同僚など
43.
GUIをつけてあげましょう • プログラミング出来ない人も安心! • なんか見た目がまぁまぁなツールが簡単に!! •
Pyinstallerのnoconsoleオプションでもう怖くない!!! • モテる!!!!(といいな 42
44.
PythonのGUI関連パッケージ • PySide • PyQt •
Tkinter • Kivy などなど… 43
45.
PySideについて • QtのPythonバインディング ただし、ライセンスが緩めてある • GUIを作るGUIツール「Qt
Designer」が使える! プログラムからGUIをゴリゴリ書かなくて済む オブジェクトの配置をこなれた感じに楽にできる • Pyinstallerで固めることで使ってもらいやすい! 44
46.
他のGUIツール • PyQt Qtそのものなので凝ったものを作れる ライセンス・商業利用注意 • Tkinter デフォルトでついてるやつ 標準感ある •
Kivy 現在発展中のGUI作成ライブラリ スマホ向けのGUIも作れる ドキュメント日本語化も進んでるみたいですよ! 45
47.
PySideのインストール • 動作確認環境 Windows10 64bit
Anaconda 4.1.1 Python3.4.5 (前半と同じ) • インストール方法(今回環境ではエラー) > pip install PySide • MSVC errorが出る場合 > pip install PySide –only-binary :all: でインストール可能 46
48.
PySideのインストール(Mac OS X) •
Macかつanacondaを使わない場合 > brew install qt でQtを事前に入れてからPySideを入れましょう 47
49.
Qt Designer • 置いてある場所 PySideがインストールされた場所にあるはず /Anaconda3/envs/<env_name>/Lib/site-packages/PySide •
今回の使用バージョン QtDesigner v4.8.5 48
50.
こんな見た目(初期設定) 49
51.
こんな見た目(初期設定) 50 Layouts ベースと なるもの ボタンやら 箱やら なんやら かんやら Property 各オブジェクトの 詳細をいじる
52.
お手軽GUI作成の流れ • Qt DesignerでWidgetを作る •
Qt DesignerでSlotを作る • Pythonスクリプトを繋げる 51
53.
ほら、簡単でしょう 52
54.
お手軽GUI作成 –Widget編 ① ベースのDialogを決める ②
Layoutsをレイヤーのように重ねてオブジェクトを配置 Layoutsにポイポイっとオブジェクトを放り込む spacerを入れるとそれっぽくなる ③ プロパティから細かいサイズや設定などは調整 53
55.
って見た方が早いですね! Qt Designer イメージ 54
56.
こんな感じ 55 ボタン テキストの箱 何となくのスペース 見栄えが 良くなる レイヤー
57.
お手軽GUI作成 –Slot編 ① Edit
Signal/Slotを選択 ② ボタンなどから矢印を引っ張る 特に他のオブジェクトと連携しなければ何もない場所を終端に ③ このSlot名を呼び出す箇所にやりたい動作を書く 56
58.
こんな感じ 57 ボタン押した時 動作設定
59.
お手軽GUI作成 –接続編 ① QtDesignerの.uiファイルを.pyファイルへ変換 >
pyside-uic.exe -o hello_gui.py hello.ui 変換ツールが標準付属(pyside-uic.exe) anaconda3/envs/<env_name>/Scripts ② mainのスクリプトを書く ③ Slotがある場合はSlotの動作を書く 58
60.
安定のHello World ボタンを押すと コンソールに"hello” と出すだけ!! 59 hello_gui.py .uiから変換した .pyファイルを呼ぶ
61.
ちょっと修正 • 設置したオブジェクトに"hello"を出力 slotの箇所を変更 • 値の埋め込み・値の取得もで可能 GUI側を修正した際は.pyファイルへ要変換 60
62.
実行! 61 押したら こんにちは
63.
実行! 62 押したら こんにちは まぁこんなもんです
64.
Hello GUI tool! •
これをpyinstallerで固めればOK > pyinstaller hello_gui.py --onefile – noconsole • Python環境不要でEXEファイルとして動作! 63
65.
完成! 64
66.
先ほどのデータ分析スクリプトをTool化 65 • 次をGUIで選択可能にしてみる • k-meansのcluster数 •
inputのCSVファイル • outputの出力先フォルダ
67.
データ分析スクリプトと接続① 66 • importしているパッケージ • これらを入れてもフリージング可能 sklearn_gui.py
68.
データ分析スクリプトと接続② • Input及びOutputのファイル・フォルダ取得ダイアログ設定 67 ファイルPath取得 ダイアログ フォルダPath取得 ダイアログ
69.
• k-meansクラスタリング部分 • 各パラメータ・ファイル関係をGUIから取得している データ分析スクリプトと接続③ 68 GUI上のテキスト 取得ダイアログ さっきの クラスタリング スクリプトを コピペ
70.
データ分析スクリプトと接続④ • main部分 特に今回は変えてない 69
71.
最後にフリージング • 前半部で設定したspecファイルと同様に設定 • >
pyinstaller sklearn_gui.spec specファイル内にて--onefile, --noconsoleオプション使用 • フリーズ完成 70
72.
実行フローイメージ 71 ① EXE実行 ② パラメータ 指定 ③ Calculation 実行 ④ 結果出力
73.
完成 Python環境不要 コマンドラインも出ない Pythonスクリプトが動作! 72
74.
【応用】さらにこじゃれた感じにするために • import logging 各スクリプトにloggerを用意してログ出力する機能をつける •
import traceback エラー時のtracebackを出力 • Sphinxを用いてツール全体のドキュメントを作る ReadTheDocsのスタイルが個人的には好きです 73
75.
今度こそ、やりました! 74
76.
75 どこでも使える このPythonツールどやー 素敵! 皆さん 同僚など
77.
まとめ • PyinstallerでPython環境無しでPython スクリプトを動作 特殊なパッケージを組み込む際は根気よく戦う •
PySideなどGUIパッケージで誰でも使いやすく PySideだとQt Designerが使えてGUI初心者でも比較的楽 どちらも紹介した以上に豊富な機能を備えています Python普及の一助に 76