| この記事の要点 |
|
PyCharm とは
PyCharm はチェコのソフトウェア会社 JetBrains が開発する Python 専用の統合開発環境 (IDE) です。同社の IntelliJ IDEA をベースにしており、Python の補完・リファクタリング・デバッグに特化しています。VS Code が「軽量エディタ + 拡張」型なのに対し、PyCharm は 標準で必要なものが全部入っているのが特徴です。
Professional と Community の違い
| 機能 | Community (無料) | Professional ($89/年〜) |
|---|---|---|
| Python 編集 / デバッグ / リファクタリング | ○ | ○ |
| venv / Conda / Poetry 連携 | ○ | ○ |
| Git / Mercurial 統合 | ○ | ○ |
| pytest / unittest | ○ | ○ |
| Django / Flask / FastAPI | × | ○ |
| Jupyter Notebook | × | ○ |
| SQL / DataGrip 機能 | × | ○ |
| Docker / Kubernetes | × | ○ |
| SSH / WSL リモート開発 | × | ○ |
| HTML / CSS / JavaScript | × | ○ |
| Profiler | × | ○ |
| ライセンス | Apache 2.0 | 商用 (有償) |
Professional は個人 $89/年 (初年度)、企業 $249/年。学生・教員・OSS 開発者は無料ライセンスあり (JetBrains に申請)。
主要な機能
1. 賢い補完 (Code Completion)
型ヒント、docstring、過去の代入から型を推論して候補を出します。標準ライブラリやサードパーティパッケージも対応。
from datetime import datetime
now = datetime.now()
# now. と打つと year / month / strftime() などの候補がポップアップ
# 引数のシグネチャ表示は Ctrl+P
2. リファクタリング
| 機能 | ショートカット | 用途 |
|---|---|---|
| Rename | Shift+F6 | 変数 / 関数 / クラス名を全プロジェクト一括変更 |
| Extract Method | Ctrl+Alt+M | 選択範囲をメソッドに切り出し |
| Extract Variable | Ctrl+Alt+V | 式を変数に切り出し |
| Inline | Ctrl+Alt+N | 変数 / 関数を展開して埋め込み |
| Move | F6 | クラスや関数を別ファイルへ移動 (import 自動修正) |
| Change Signature | Ctrl+F6 | 引数の追加・削除・順序変更を呼出側まで一括 |
3. デバッガ
ブレークポイント、ステップ実行、条件付きブレーク、Evaluate Expression、リモートデバッグまで揃います。コルーチン (asyncio) も追跡可能。
4. Git 統合
- 左の Git ツールウィンドウで commit / push / pull / branch
- ファイルの行ごとの blame 表示 (右側ガター)
- 3-way merge エディタ (コンフリクト解決が圧倒的に楽)
- GitHub / GitLab Pull Request の作成・レビューが IDE 内で完結 (Pro)
5. Database ツール (Pro)
PostgreSQL / MySQL / SQLite / Oracle / SQL Server / Redis 等に IDE 内から接続して SQL 実行、テーブル編集、ER 図表示が可能。JetBrains の DataGrip と同等の機能です。
主要ショートカット
| 操作 | Windows / Linux | macOS |
|---|---|---|
| Search Everywhere (何でも検索) | Shift Shift | Shift Shift |
| Find Action | Ctrl+Shift+A | Cmd+Shift+A |
| Go to File | Ctrl+Shift+N | Cmd+Shift+O |
| Go to Class | Ctrl+N | Cmd+O |
| Go to Symbol | Ctrl+Alt+Shift+N | Cmd+Alt+O |
| Find Usages | Alt+F7 | Alt+F7 |
| Go to Declaration | Ctrl+B | Cmd+B |
| Reformat Code | Ctrl+Alt+L | Cmd+Alt+L |
| Optimize Imports | Ctrl+Alt+O | Cmd+Alt+O |
| Run | Shift+F10 | Ctrl+R |
| Debug | Shift+F9 | Ctrl+D |
| Recent Files | Ctrl+E | Cmd+E |
| Terminal | Alt+F12 | Cmd+F12 |
Code Inspection (静的解析)
PyCharm はファイル保存時に多数のルールでコードを分析し、警告を表示します:
- 未使用変数 / インポート
- PEP 8 違反 (インデント、命名、空白)
- 型ヒント不一致
- シャドウされた組込み名 (例:
list = []) - 呼出されない関数
- 非推奨 API の使用
Settings → Editor → Inspections で個別に有効化 / 重大度を調整できます。Ctrl+Alt+Shift+I で全プロジェクトをスキャン。
virtualenv / Conda / Poetry 連携
プロジェクトを開くと、requirements.txt / pyproject.toml / environment.yml を自動検出し、「依存をインストールしますか?」と提案されます。Settings → Project → Python Interpreter で個別の環境追加も可能。
Jupyter / Conda 連携 (Pro)
- .ipynb を直接開いて編集・実行
- セルの出力 (グラフ / DataFrame) を IDE 内で表示
- セル単位デバッグ
- Conda 環境を直接インタープリタに指定可
テーマとカスタマイズ
- Settings → Appearance & Behavior → Theme : Darcula / IntelliJ Light / High Contrast 等
- Plugins から GitHub Copilot / Material Theme / Rainbow Brackets 等を追加
- Settings Sync で複数マシン間の設定同期 (JetBrains アカウント必要)
FAQ
Q: VS Code と比べてどちらが良い?
A: 「設定不要で全部入り」が PyCharm、「軽量で拡張自由」が VS Code。大規模プロジェクト / リファクタリング多用なら PyCharm、小〜中規模や複数言語切替なら VS Code。
Q: Community Edition で Django できないのか
A: Django プロジェクトを開けますが、テンプレート補完、Run Configuration、admin デバッグなどの専用機能がありません。素の Python プロジェクトとしては動きます。
Q: 重い、起動が遅い
A: Help → Change Memory Settings でヒープを 4096MB 以上に。インデックスが完了するまで初回は遅く感じます。.idea/ は .gitignore に。
📸 参考画像
※ 旧バージョンから引き継いだ参考画像です。手順・図解の補助としてご覧ください。

人気ページ
- 1 Eclipseで「サーバーに追加または除去できるリソースがありません。」の原因と対処法
- 2 tomcat の起動 / 停止ログと catalina.log・catalina.out の違い
- 3 JavaScript で base URL を取得する方法|window.location.origin
- 4 YouTube Data API v3 エラー一覧|403・400・404 の原因と対処
- 5 Laravel エラー一覧|500/Blade/DB 接続/ルーティングの代表エラー
- 6 3Dグラフィックスとは|モデリング/レンダリング/主要ソフトウェア (Blender / Maya)
- 7 Spring Frameworkのアノテーション一覧
- 8 【Spring】@Valueアノテーションとは
- 9 CATALINA_HOME の確認方法 (Linux / Mac)
- 10 【Spring】@Autowiredアノテーションとは
最近更新/作成されたページ
- プロジェクトをTomcatプロジェクトとして認識させる方法 2026-10-07 22:32:50
- MySQLの1366 Incorrect string value|Laravelの文字コード・絵文字エラー 2026-10-07 21:54:03
- curlの証明書ホスト名不一致|旧エラー51・現行60の確認と対処 2026-10-07 21:54:03
- LaravelのMassAssignmentException|fillableの原因と安全な対処 2026-10-07 21:54:03
- Eclipse で Tomcat の起動ログがコンソールに出ない時の確認手順 2026-10-07 21:54:02
- MySQLにおける中央値(Median)の導き方(バージョン8未満) 2026-10-07 13:49:45
- getInputForward 2026-10-07 13:41:15
- JSONから配列に変換 2026-10-07 13:41:15
- ビューから値をモデルに格納しコントローラーで受け取る方法 2026-10-07 13:23:41
- Laravelのテーブル作成と定義変更|マイグレーション・up/down・注意点 2026-10-07 13:23:41
- NumPy 配列に要素を追加する方法 (append / concatenate) 2026-10-07 13:23:41
- MariaDB・MySQLで現在日時を取得する方法|NOW・タイムゾーン・保存型 2026-10-07 13:13:36
- 【django】テンプレートで定数を使用する方法 2026-10-07 13:10:15
- Spring BootにおけるApplication.propertiesの環境依存設定の分割方法 2026-10-07 12:09:35
- Not supported for DML operations【Springエラー】 2026-10-07 11:09:38