狠狠撸

狠狠撸Share a Scribd company logo
Djangoではじめる
PyCharm入門
PyCon Kyushu 2018
Kashun Yoshida 2018-06-30
Who am I? / お前誰よ?
● @kashew_nuts
● BeProud Inc.
● Software Developer
● Python, Vim, PyCharm
● Django Girls Tutorial
● Django Documentation
● vimdoc-ja
What's BeProud?
● 東京に本拠を置くPythonエンジニアリング会社
● Webサービス:
○ Connpass: エンジニアをつなぐ IT勉強会支援プラットフォーム
○ PyQ: Python学習用のオンラインプラットフォーム
● フルリモートワーキング (5days/week)
書籍が出版されました
● Pythonプロフェッショナルプロ
グラミング 第3版
● 6/12発売
● Git/GitHub対応
● CIがJenkins→CircleCIに
● 機械学習プロジェクト対応
発表の動機/目的
● 「PyCharmどうですか?」と漠然と聞かれることがあった。
● 実際仕事でPyCharmを使っているが, PyCharmの使い方, 利
用してるライブラリー, 周辺環境など色々なトピックがあった。
● その中でPyCharmを使うと便利な点をまとめてみたいなと
思った次第です。
対象
● PyCharmを使ってみたいが, どうやって使っていったらいいか
わからない人
● 普段からPyCharmを使っているが, もっと使いこなしたい人
● 他に使い慣れているツールがあるが, PyCharmもおさえてお
きたい人
今日の目標
● PyCharm完全にマスターした
前提とする環境
● サンプルコードはすべてPython3.6, Django2.0
● 利用バージョン: PyCharm Professional 2018.1
● 題材: Django Girls Tutorial
● リポジトリ:
https://github.com/kashewnuts/djangogirlstutorial
目次
● PyCharm概要
● PyCharmがサポートしていること
● 実際にPyCharmを使っていての感想
● PyCharmが向いていないこと
● 基本機能
● Djangoサポート
● フロントエンドサポート
● データベースサポート
● リモート開発
● テスト実行
● PyCharmを使うとき注意すべきこと
引用: https://www.jetbrains.com/pycharm/
What's PyCharm ?
● https://www.jetbrains.com/pycharm/
● チェコのJetBrains社が作成するPython統合開発環境
○ ~Python IDE for Professional Developers~
● 無償のCommunity版と有償のProfessional版がある
○ Community版は機能制限あり
○ サポートしてる機能の違いは PyCharm Editions Comparison に まと
められてる
インストール要件
● ハードウェア条件
○ 最小4 GB RAM, 8 GB RAMを推奨
○ 1.5 GBのハードディスク空き容量+キャッシュ用に少なくと
も1 GB
○ 1024x768の最小画面解像度
● ソフトウェア要件
○ OS: Windows, macOS, Linuxに対応
○ Python: 2.4以降, Jython, PyPy, IronPython
PyCharmができること
● Intelligent Python Assistance
● Webアプリケーション開発
○ (Django, Flask, Pyramid, JavaScript, ...)
● 科学技術系ツール (Jupyter, Numpy, matplotlib, ...)
● デバッグ, テスト, プロファイリング
● VCS連携 (Git, Mercurial, SVN)
● デプロイ, リモート開発 (Vagrant, Docker)
● データベースツール (MySQL, PostgreSQL, Oracle, AWS, …)
PyCharmに対しての感想
● 他のツールを探しにいく必要がなくなった
● PythonもDjangoもよく知っているIDE
○ Python本体、Djangoのurls, views, models, templates, etc…
● コード補完と解析、インクリメンタルサーチが賢い
● Python事情への追従が速い: Python3.7, Django2.0
● Webアプリケーション開発をするにあたり必要なものが揃っていて必要なときに使
いやすい (Database&SQL, VCS, Remote Development)
● デバッガーが優秀:
○ Django runserverしながらCeleryのデバッグができたり , pytestをステップ実行できたり , JavaScript
とPythonの両方でデバッグできたりして至極便利
● Gitのブランチ操作がサクサク動くし, コンフリクトの解消もしやすい
● 困ったときはSearchEverywhereやFind in Actionで調べれば大抵のことは解決
PyCharmが向いていないこと
● プラグインの作成(Javaで書く必要がある)
● 単一ファイルの編集するエディタ代わりの使い方
DEMO
PyCharmの基本機能
● Pythonのシンタックスハイライト, コード補完, 定義ジャンプ対
応
● Python2/3対応
● virtualenvサポート
● GUIのパッケージマネージャー
● リファクタリング, デバッガ, コードインスペクション
● VCS連携
● Terminalサポート
PyCharmのDjangoサポート
● 専用のプロジェクトタイプ
● manage.pyユーティリティの実行
● Django用に強化されたコード補完, 定義ジャンプ, デバッグの
連携
○ UrlConf, View, Model, Templates, Forms
● Model用の依存関係図作成
フロントエンド
● 同社のWebStrom (Front-end用IDE) 相当を同梱
● HTML, CSS, JavaScriptのコード補完, 定義ジャンプ, コード
解析
● JavaScriptのFramework対応
○ Angular, React, Vue.js, and more
● CSS Framework対応
○ SASS, SCSS, Less, and more.
データベース
● 同社のDataGrip (DataBase & SQL用ツール) 相当を同梱
● DataBase & SQLサポート
○ SQLの作成と実行, コード補完, リファクタリング
● SQLAlchemy対応
● CSV/JSON/XML出力対応
● 対応するDataBase
○ Amazon Aurora, Amazon Redshift, MariaDB, MySQL, Oracle,
PostgreSQL, SQL Server, SQLite3, and more.
リモート開発
● VagrantやDocker, Docker Composeサポート
○ 起動, 終了, リロード
○ Remote Interpretersの指定, Remote Debug
● SSH Remote
○ Vagrantfileを使ったSSH
○ WSLの実行やデバッグ
○ SSHやSSLを使用したリモート接続
● コードデプロイ (SFTP)
テスト実行
● unittest, pytest, nose, doctest, toxをサポート
● テスト対象を指定して実行できる
○ 失敗したテスト
○ 指定したクラス配下のテスト
○ 指定した関数のテスト
● Coverageの表示
フルスタックWebアプリケーション開発
引用: https://www.jetbrains.com/pycharm/features/web_development.html
PyCharmを使うとき注意すべきこと
● トリッキーな使い方をするとハマる
● 予期せぬ出来事にであったときは何が問題なのか切り分ける
○ PyCharm側の問題?関連するツールの問題?(Python, MySQL,
Vagrant, Docker, SSH...)
● PyCharmのバグを踏んだときはがんばり過ぎない
○ なんか今日は機嫌悪いな?と思ったらInvalidate Caches/Restart
○ Stop&Startで直ることも。再インストールは最終手段。
○ 不具合は報告すると比較的すぐに対応してくれるので, Issueトラッカー
に登録or見つけたらVote
リファレンス
● PyCharmの使い方 - 公式ヘルプ | PyCharm (ja / en)
● Pythonエンジニア ファーストブック
● IntelliJ IDEAハンズオン 基本操作からプロジェクト管理までマ
スター
● Android Studio本格活用バイブル
ご清聴ありがとうございました

More Related Content

Django で始める PyCharm 入門