SlideShare une entreprise Scribd logo
1  sur  15
Télécharger pour lire hors ligne
第33回 コンピュータビジョン勉強会@関東
PyCharm⼊入⾨門
@yuukicammy
2016.4.17
自己紹介
• yuukicammy
• 画像処理理関係の研究開発に従事
• 普段使うプログラミング⾔言語と開発環境
• C++  with  Visual  Studio  
• MATLAB
• [New!]  Python  with  PyCharm (2016/1〜~)
第33回 コンピュータビジョン勉強会@関東 2
本日の内容 :	
  PyCharmの紹介
• 最近の(私の)開発スタイル
• PyCharmについて
• Intelligent	
  Code	
  Assistance	
  
• デバッグ機能
• リモート開発
• プロファイリング
第33回 コンピュータビジョン勉強会@関東 3
最近の開発スタイル
• 深層学習系など処理時間の長いプログラムの開発は複数台マシンが使えると便利
• ラップトップ1台でコーディングを行う
• 実行はリモートのマシンで行う(データはリモートのマシンに置く)
そこで
• ローカルマシン上でssh経由でリモートデバッグしたい
• しかもIDEを使いたい
PyCharmが便利!!!
第33回 コンピュータビジョン勉強会@関東 4
PyCharm
• Pythonの統合開発環境(IDE)
• IntelliJの開発で有名なJetBrains社(チェコ)の製品
• Editionと主な機能
• 価格
• 商用 US $ 199	
  (¥21,644) /1st	
  year
• 個人 US $ 89	
  (¥9,680)/1st	
  year
• 学生無料、スタートアップ50%off、競合製品利用者25%off…
第33回 コンピュータビジョン勉強会@関東 5
エディタ
(補完、エ
ラー検出)
デバッグ 検索・ジャンプ・
リファクタリング
検証 バージョン管理
(Git,	
  SVN)
分析系ツール
(Ipython	
  
Nootbook,	
  
NumPy	
  Array	
  
Viewer)
Web開発
(Django,	
  
Flask,	
  Google	
  
App	
  Engine)
プロファイリ
ング
リモート開発 データベース
Community ○ ○ ○ ○ ○ ○ × × × ×
Professional ○ ○ ○ ○ ○ ○ ○ ○ ○ ○
Intelligent	
  Code	
  Assistance	
  
第33回 コンピュータビジョン勉強会@関東 6
• Intelligent	
  Code	
  Editor
• 補完、エラー検出、
コード修正(on-­‐the-­‐fly	
  code	
  fixes)
• Smart	
  Code	
  Navigation
• 定義・親クラスなどへのジャンプ
• Fast	
  and	
  Safe	
  Refactorings
• リファクタリング(変数名変更、削除など)
デバッグ -­‐インタプリタの設定-­‐
• Python	
  Interpreterの登録
• VirtualEnvの作成・指定も可能
• インストールされているパッケージの確認もここでできる
Preference	
  -­‐>	
  Project	
  -­‐>	
  Project	
  Interpreter
第33回 コンピュータビジョン勉強会@関東 7
デバッグ -­‐実行するプログラムの設定-­‐
• 実行するpythonファイル、コマンドライン引数、インタープリタなどを
指定
• 必要に応じて環境変数の指定も可能
第33回 コンピュータビジョン勉強会@関東 8
Run	
  -­‐>	
  Edit	
  Configurations
デバッグ
• ブレークポイント
• 変数にカーソルをあてて現在の値
を確認
• 変数一覧とその値を確認
第33回 コンピュータビジョン勉強会@関東 9
デバッグ -­‐画面全体-­‐
第33回 コンピュータビジョン勉強会@関東 10
ファイル一覧
デバッグ操作ボタン
スレッド指定
変数一覧
コード
(デバッグ中はコード上
にも変数の値が表示さ
れる)
コンソール
リモート開発 -­‐概要-­‐
• PyCharm上で
• ssh経由でリモートマシンで実行・デバッグができる
• リモートマシンとのファイル同期ができる
• 必要な設定
• リモートのPythonインタープリタの設定
• ローカルの特定ディレクトリと対応するリモートディレクトリの指定
(Deployment)
第33回 コンピュータビジョン勉強会@関東 11
リモート開発 -­‐インタプリタの設定-­‐
• リモートのPython	
  Interpreterを登録
• リモート上のVirtualEnvのインタプリタも指定可能
• sshのプライベートキーを設定
• 一度登録すれば別のプロジェクトでも設定が使え
る
• 実行するプログラムの設定で、リモートのイン
タープリタを選択する
• それ以外のデバッグ操作はローカルと同じ
第33回 コンピュータビジョン勉強会@関東 12
usr@server
user
Preference	
  -­‐>	
  Project	
  -­‐>	
  Project	
  Interpreter	
  -­‐>	
  Add	
  Remote
Run	
  -­‐>	
  Edit	
  Configurations
リモート開発 -­‐Deployment-­‐
• ローカルとリモートのファイルを同期させる
• Git経由でもよいが、一人で開発する場合だと同期の方が便利
(バージョン管理はリモートとの同期とは別に行う)
• Deploymentの設定 Tools	
  -­‐>	
  Deployment	
  -­‐>	
  Configuration
• FTP,	
  FTPS,	
  SFTPでローカル・リモート間のファイル転送ができる
• Local(or	
  mounted	
  folder)も指定可能
• 設定画面でプロトコル、サーバのIPアドレス、対応するローカル・リモートのディレク
トリパスを指定する
• 同期方法 (上書き)
• ローカルからリモート or	
  リモートからローカル
• 自動同期 or	
  手動同期
第33回 コンピュータビジョン勉強会@関東 13
プロファイリング
第33回 コンピュータビジョン勉強会@関東 14
• プロファイル
• ボタン一つでプロファイルをとることができる
• 使われているのは cProfile or	
  yappi
• Concurrency	
  Diagram
• マルチスレッドの場合にボタン一つで各スレッドの状態を表示できる
まとめ
• リモート実行・デバッグが行えると複数台マシンがあっても開発マシ
ンを1台に集約できて便利
• PyCharmはデバッグが便利に行えて、かつリモートのマシンでもロー
カルと同じように実行・デバッグが行える
• PyCharmおすすめ!
• 他に使いやすいPython用IDEがありましたら教えていただけると幸い
です
第33回 コンピュータビジョン勉強会@関東 15

Contenu connexe

Tendances

言語処理するのに Python でいいの? #PyDataTokyo
言語処理するのに Python でいいの? #PyDataTokyo言語処理するのに Python でいいの? #PyDataTokyo
言語処理するのに Python でいいの? #PyDataTokyo
Shuyo Nakatani
 
他人が書いたコードのリファレンスをSphinxで作る方法
他人が書いたコードのリファレンスをSphinxで作る方法他人が書いたコードのリファレンスをSphinxで作る方法
他人が書いたコードのリファレンスをSphinxで作る方法
Takeshi Sugiyama
 
Python エンジニアの作り方 2011.08 #pyconjp
Python エンジニアの作り方 2011.08 #pyconjpPython エンジニアの作り方 2011.08 #pyconjp
Python エンジニアの作り方 2011.08 #pyconjp
Takeshi Komiya
 

Tendances (20)

GBDC 勉強会 #1 Python を用いたツール作成工数の最小化
GBDC 勉強会 #1 Python を用いたツール作成工数の最小化GBDC 勉強会 #1 Python を用いたツール作成工数の最小化
GBDC 勉強会 #1 Python を用いたツール作成工数の最小化
 
言語処理するのに Python でいいの? #PyDataTokyo
言語処理するのに Python でいいの? #PyDataTokyo言語処理するのに Python でいいの? #PyDataTokyo
言語処理するのに Python でいいの? #PyDataTokyo
 
RubyエンジニアがPythonをdisるためにPythonを勉強してみた
RubyエンジニアがPythonをdisるためにPythonを勉強してみたRubyエンジニアがPythonをdisるためにPythonを勉強してみた
RubyエンジニアがPythonをdisるためにPythonを勉強してみた
 
211120 他人の書いたPythonスクリプトをステップ実行で理解する
211120 他人の書いたPythonスクリプトをステップ実行で理解する211120 他人の書いたPythonスクリプトをステップ実行で理解する
211120 他人の書いたPythonスクリプトをステップ実行で理解する
 
続Pythonによるwebスクレイピング入門
続Pythonによるwebスクレイピング入門続Pythonによるwebスクレイピング入門
続Pythonによるwebスクレイピング入門
 
10分でわかるPythonの開発環境
10分でわかるPythonの開発環境10分でわかるPythonの開発環境
10分でわかるPythonの開発環境
 
PyCon JP 2016 ビギナーセッション
PyCon JP 2016 ビギナーセッションPyCon JP 2016 ビギナーセッション
PyCon JP 2016 ビギナーセッション
 
他人が書いたコードのリファレンスをSphinxで作る方法
他人が書いたコードのリファレンスをSphinxで作る方法他人が書いたコードのリファレンスをSphinxで作る方法
他人が書いたコードのリファレンスをSphinxで作る方法
 
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によるwebアプリケーション入門 - Django編-
Pythonによるwebアプリケーション入門 - Django編- Pythonによるwebアプリケーション入門 - Django編-
Pythonによるwebアプリケーション入門 - Django編-
 
210630 python
210630 python210630 python
210630 python
 
191030 anna-with-python
191030 anna-with-python191030 anna-with-python
191030 anna-with-python
 
なぜ科学計算にはPythonか?
なぜ科学計算にはPythonか?なぜ科学計算にはPythonか?
なぜ科学計算にはPythonか?
 
Django から各種チャットツールに通知するライブラリを作った話
Django から各種チャットツールに通知するライブラリを作った話Django から各種チャットツールに通知するライブラリを作った話
Django から各種チャットツールに通知するライブラリを作った話
 
Pyconjp2016 pyftplib
Pyconjp2016 pyftplibPyconjp2016 pyftplib
Pyconjp2016 pyftplib
 
Python学習奮闘記#07 webapp
Python学習奮闘記#07 webappPython学習奮闘記#07 webapp
Python学習奮闘記#07 webapp
 
Pynyumon03 LT
Pynyumon03 LTPynyumon03 LT
Pynyumon03 LT
 
WindowsでPython
WindowsでPythonWindowsでPython
WindowsでPython
 
Python エンジニアの作り方 2011.08 #pyconjp
Python エンジニアの作り方 2011.08 #pyconjpPython エンジニアの作り方 2011.08 #pyconjp
Python エンジニアの作り方 2011.08 #pyconjp
 
stapy#23 LT
stapy#23 LTstapy#23 LT
stapy#23 LT
 

Similaire à PyCharm入門

CodingTips+ 基礎編
CodingTips+ 基礎編CodingTips+ 基礎編
CodingTips+ 基礎編
Yusuke Ito
 

Similaire à PyCharm入門 (20)

PythonとRによるデータ分析環境の構築と機械学習によるデータ認識
PythonとRによるデータ分析環境の構築と機械学習によるデータ認識PythonとRによるデータ分析環境の構築と機械学習によるデータ認識
PythonとRによるデータ分析環境の構築と機械学習によるデータ認識
 
Japan Robot Week 2016 RTM講習会 第3部
Japan Robot Week 2016 RTM講習会 第3部Japan Robot Week 2016 RTM講習会 第3部
Japan Robot Week 2016 RTM講習会 第3部
 
私とOSSの25年
私とOSSの25年私とOSSの25年
私とOSSの25年
 
Django ORM道場:クエリの基本を押さえ,より良い形を身に付けよう
Django ORM道場:クエリの基本を押さえ,より良い形を身に付けようDjango ORM道場:クエリの基本を押さえ,より良い形を身に付けよう
Django ORM道場:クエリの基本を押さえ,より良い形を身に付けよう
 
XamarinStudio勉強会 2014/09/08
XamarinStudio勉強会 2014/09/08XamarinStudio勉強会 2014/09/08
XamarinStudio勉強会 2014/09/08
 
Introduction to Quantum Programming Studio
Introduction to Quantum Programming StudioIntroduction to Quantum Programming Studio
Introduction to Quantum Programming Studio
 
Django で始める PyCharm 入門
Django で始める PyCharm 入門Django で始める PyCharm 入門
Django で始める PyCharm 入門
 
今時のオンプレなgithubクローン環境構築
今時のオンプレなgithubクローン環境構築今時のオンプレなgithubクローン環境構築
今時のオンプレなgithubクローン環境構築
 
MicroPythonのCモジュールを作ってみる
MicroPythonのCモジュールを作ってみるMicroPythonのCモジュールを作ってみる
MicroPythonのCモジュールを作ってみる
 
WebRTC mediasoup on raspberrypi3
WebRTC mediasoup on raspberrypi3WebRTC mediasoup on raspberrypi3
WebRTC mediasoup on raspberrypi3
 
Io t,ai時代のソフトウェア
Io t,ai時代のソフトウェアIo t,ai時代のソフトウェア
Io t,ai時代のソフトウェア
 
ChainerMNをDocker containerで動かす
ChainerMNをDocker containerで動かすChainerMNをDocker containerで動かす
ChainerMNをDocker containerで動かす
 
Visual Studioで始めるTypeScript開発入門
Visual Studioで始めるTypeScript開発入門Visual Studioで始めるTypeScript開発入門
Visual Studioで始めるTypeScript開発入門
 
CodingTips+ 基礎編
CodingTips+ 基礎編CodingTips+ 基礎編
CodingTips+ 基礎編
 
鳥取python勉強会 第1回
鳥取python勉強会 第1回鳥取python勉強会 第1回
鳥取python勉強会 第1回
 
Scratchでまなぶプログラミング的思考
Scratchでまなぶプログラミング的思考Scratchでまなぶプログラミング的思考
Scratchでまなぶプログラミング的思考
 
クロスプラットフォーム開発雑感 #pronamaclrhsapporocpp
クロスプラットフォーム開発雑感 #pronamaclrhsapporocppクロスプラットフォーム開発雑感 #pronamaclrhsapporocpp
クロスプラットフォーム開発雑感 #pronamaclrhsapporocpp
 
深層学習ライブラリのプログラミングモデル
深層学習ライブラリのプログラミングモデル深層学習ライブラリのプログラミングモデル
深層学習ライブラリのプログラミングモデル
 
pf-1. Python,Google Colaboratory
pf-1. Python,Google Colaboratorypf-1. Python,Google Colaboratory
pf-1. Python,Google Colaboratory
 
インタラクションデザインおよびメディアアートにおける オープン化方法の検討と実践(Study in Method and Practice of Open...
インタラクションデザインおよびメディアアートにおける オープン化方法の検討と実践(Study in Method and Practice of Open...インタラクションデザインおよびメディアアートにおける オープン化方法の検討と実践(Study in Method and Practice of Open...
インタラクションデザインおよびメディアアートにおける オープン化方法の検討と実践(Study in Method and Practice of Open...
 

Dernier

Dernier (11)

新人研修 後半 2024/04/26の勉強会で発表されたものです。
新人研修 後半        2024/04/26の勉強会で発表されたものです。新人研修 後半        2024/04/26の勉強会で発表されたものです。
新人研修 後半 2024/04/26の勉強会で発表されたものです。
 
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
 
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
 
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
LoRaWANスマート距離検出センサー  DS20L  カタログ  LiDARデバイスLoRaWANスマート距離検出センサー  DS20L  カタログ  LiDARデバイス
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
 
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
 
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
 
Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)
Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)
Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)
 
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
 
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
 
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアルLoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
 
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
 

PyCharm入門

Notes de l'éditeur

  1. Run -> Edit Configurations