概要

PyCharmは、JetBrainsが提供しているPython向けの統合開発環境 (IDE) である。
IntelliJプラットフォームをベースとしており、Python開発に必要な機能が最初から備わっている。

2025.1以降、PyCharmは単一の統合製品 (unified PyCharm) となった。
従来のCommunity EditionとProfessional Editionというアーカイブ名の区別は廃止され、配布されるアーカイブは pycharm-<バージョン>.tar.gz に統一されている。

機能の利用範囲は、サブスクリプションの有無によって決まる。
Proサブスクリプションでは、リモートインタープリター (SSH) やデータベースツール等の高度な機能が利用できる。

PyCharmには、JS、CSS、HTML等のWeb開発関連のプラグインも付属しているため、フロントエンド開発も同じ環境で開発できる。
また、デバッガ、テストランナー、仮想環境管理、uv統合等のPythonツールチェーンとの連携機能も含まれている。

AI Assistantプラグインにも対応しており、MCPサーバやACPを使用した外部AIエージェントとの連携が可能である。

JetBrainsは、PyCharmのインストールにJetBrains Toolbox Appの使用を推奨している。
Toolbox Appを使用すると、インストール、更新、および複数バージョンの管理が容易になる。

ただし、アーカイブからの手動インストールも引き続きサポートされている。


前提条件

システム要件

  • Python
    Python 2.7 または Python 3.9 から 3.15
  • glibc
    バージョン 2.28 以降
  • JBR (JetBrains Runtime)
    JBR 21がPyCharmにバンドルされており、別途JDKをインストールする必要はない。
  • ディスプレイ
    1280x720以上の解像度


もし、各Linuxディストリビューションで問題が発生した場合は、JetBrains公式ドキュメントを参照すること。


PyCharmのインストール

JetBrainsは、PyCharmのインストールにJetBrains Toolbox Appの使用を推奨している。
Toolbox Appを使用すると、インストール、更新、複数バージョンの管理が容易になる。

方法1: JetBrains Toolbox Appを使用

Toolbox Appをインストールしていない場合は、Toolbox Appの公式ページからダウンロードする。
Toolbox Appを起動後、PyCharmを選択してインストールする。

方法2: アーカイブからインストール

PyCharmの公式ページから、pycharm-<バージョン>.tar.gz をダウンロードする。

ダウンロードしたアーカイブを任意のディレクトリに展開する。

tar -xf pycharm-<バージョン>.tar.gz -C <任意のディレクトリ>


展開後、/<任意のディレクトリ>/pycharm-<バージョン> ディレクトリが作成される。


PyCharmの起動

アーカイブからインストールした場合、以下のコマンドでPyCharmを起動する。

cd /opt/pycharm-<バージョン>/bin
./pycharm


./pycharm は、pycharm.sh へのラッパースクリプトである。
直接 ./pycharm.shを実行しても起動できる。


デスクトップエントリファイルの作成

デスクトップエントリファイルの作成は、GNOMEやKDE等の共通の設定である。

方法1: PyCharmのメニューから作成 (推奨)

PyCharmのメインメニューから、[Tools] - [Create Desktop Entry] を選択する。
確認ダイアログが表示されたら、[OK]ボタンを押下する。

PyCharmが ~/.local/share/applications ディレクトリにデスクトップエントリファイルを自動作成する。

方法2: 手動で作成

~/.local/share/applications ディレクトリにデスクトップエントリファイルを手動で作成する。

vi ~/.local/share/applications/jetbrains-pycharm.desktop


 # ~/.local/share/applications/jetbrains-pycharm.desktopファイル
 
 [Desktop Entry]
 Type=Application
 Name=PyCharm
 GenericName=PyCharm
 Comment=Develop with pleasure
 Exec=/<任意のディレクトリ>/pycharm-<バージョン>/bin/pycharm.sh %F
 Icon=/<任意のディレクトリ>/pycharm-<バージョン>/bin/pycharm.png
 Terminal=false
 Categories=Development;IDE;Python;


Exec キー および Icon キーのパスは、実際のインストール先に置き換えること。


ウォッチハンドルの設定

VCS、ビルドツール、コードジェネレータ等による変更等、外部からファイルの変更を把握することが不可欠である。
そのため、IntelliJプラットフォームでは、そのような変更を監視するためのバックグラウンドプロセスを実行している。

この方法は各プラットフォームで異なり、Linuxにおいては、Inotify機能を使用している。

Inotify機能において、プロジェクト内の各ディレクトリにウォッチハンドルを設定する必要がある。
しかし、ウォッチハンドルの初期値は、プロジェクトによっては十分ではない可能性がある。

IntelliJプラットフォームでは、ウォッチハンドルの制限に達する場合、ディレクトリツリーの再帰的なスキャンに戻ってしまう。

この状況を防ぐためには、ウォッチの上限を増加させることを推奨する。

/etc/sysctl.conf ファイル または /etc/sysctl.d/ ディレクトリに *.conf ファイル (例: idea.conf) に、以下に示す設定を追加する。

sudo vi /etc/sysctl.conf
# または
sudo vi /etc/sysctl.d/idea.conf


 # /etc/sysctl.confファイル
 # または
 # /etc/sysctl.d/idea.confファイル
 
 fs.inotify.max_user_watches = 1048576


上記の変更を適用する。

sudo sysctl --system


PyCharmを起動している場合は、PyCharmを再起動する。

現在の設定を確認する場合は、以下に示すコマンドを実行する。

sudo sysctl fs.inotify.max_user_watches


※注意
監視制限はユーザごとの設定である。
もし、同一ユーザでInotifyを使用している他のソフトウェアが動作している場合は、全てのソフトウェアのニーズに合うように制限値を高くする必要がある。

一部のLinuxディストリビューションでは、この設定を /usr/lib/sysctl.d ディレクトリ配下のファイルで構成する場合がある。
これらのディレクトリ内のファイルはファイル名の順序で読み込まれるため、/etc/sysctl.d/idea.conf を使用してシステム設定を上書きし、優先度の高い設定を適用できる。


PyCharmの設定

行番号と空白文字の表示

[File]メニューバー - [Settings] - [Editor] - [General] - [Appearance]を選択する。
[Show line numbers]チェックボックスおよび[Show whitespaces]チェックボックスにチェックを入力する。

Samba上にプロジェクトを置く場合

External file changes sync may be slow メッセージを表示させないために、
[File]メニューバー - [Settings] - [Appearance & Behavior] - [Notifications]から[File Watcher Messages]を[No popup]にする。


Pythonインタープリターの設定

PyCharmでPython開発を行うには、Pythonインタープリターの設定が必要である。

仮想環境 (venv) の作成

Pythonの仮想環境を作成するには、以下に示すコマンドを実行する。

python3 -m venv .venv
source .venv/bin/activate


PyCharmで仮想環境をインタープリターとして設定する手順を、以下に示す。

  1. [File]メニューバー - [Settings] - [Project: <プロジェクト名>] - [Python Interpreter]を選択する。
  2. [Add Interpreter] - [Add Local Interpreter]を選択する。
  3. [Virtualenv Environment]タブを選択する。
  4. [New environment]を選択して、ベースインタープリターと仮想環境のパスを指定する。
  5. [OK]ボタンを押下する。


既存の仮想環境を追加する場合は、[Existing environment]を選択して、仮想環境のパスを指定する。

uvの使用

uvは、Astral社が提供している高速なPythonパッケージマネージャである。

PyCharmはuvとの統合をサポートしている。

uvをインストールする。

curl -LsSf https://astral.sh/uv/install.sh | sh


uvを使用して仮想環境を作成する。

uv venv
source .venv/bin/activate


パッケージをインストールする。

uv pip install <パッケージ名>


PyCharmでuvの仮想環境をインタープリターとして設定する手順を、以下に示す。

  1. [File]メニューバー - [Settings] - [Project: <プロジェクト名>] - [Python Interpreter]を選択する。
  2. [Add Interpreter] - [Add Local Interpreter]を選択する。
  3. [Virtualenv Environment]タブを選択する。
  4. [Existing environment]を選択して、uvが作成した仮想環境のパスを指定する。
  5. [OK]ボタンを押下する。


詳細については、PyCharm公式ドキュメントを参照すること。

pyproject.toml

Pythonプロジェクトの設定は、pyproject.toml ファイルで管理することが推奨されている。

PyCharmは、pyproject.toml ファイルの編集時に依存関係の自動補完を提供する。

 # pyproject.tomlファイル
 
 [project]
 name = "my-project"
 version = "0.1.0"
 requires-python = ">=3.9"
 dependencies = [
    "requests>=2.31",
    "pytest>=8.0",
 ]


pytestの実行

PyCharmは、pytestテストフレームワークと統合されている。

テストを実行する方法を、以下に示す。

  1. テスト関数の横に表示される実行アイコンを選択する。
    または、[Run] - [Run...]から該当するテストを選択する。


ターミナルからpytestを実行する場合は、以下に示すコマンドを使用する。

pytest
# または
python -m pytest



PyCharmの日本語化

PyCharmは、JetBrains公式のJapanese Language Packプラグインで日本語化できる。

方法1: Marketplaceからインストール (推奨)

  1. PyCharmを起動して、[File]メニューバー - [Settings] (または [Preferences]) を選択する。
  2. [Plugins]を選択する。
  3. [Marketplace]タブを選択して、[Japanese Language Pack]を検索する。
  4. [Install]ボタンを押下する。
  5. インストール完了後、PyCharmを再起動する。


方法2: ディスクからインストール

  1. JetBrainsの公式Webサイトから、Japanese Language Packプラグインをダウンロードする。
    この時、zipファイルは解凍しないことに注意する。
  2. PyCharmを起動して、[File]メニューバー - [Settings] (または [Preferences]) - [Plugins]を選択する。
  3. [Settings]画面の歯車ボタンから [Install Plugin from Disk...]を選択する。
  4. ダウンロードしたJapanese Language Packプラグインファイルを選択してインストールする。
  5. インストール完了後、PyCharmを再起動して、正常に日本語化できているか確認する。


詳細については、JetBrains公式ドキュメントを参照すること。


リモート開発

PyCharmでは、SSHを使用してリモート先PC上のPythonインタープリターを使用できる。
この機能は、Proサブスクリプションが必要である。

まず、リモート先PCにおいて、SSHの設定を行う。
SSHの設定は、設定 - SSHページ または 設定 - SSHの公開鍵認証ページを参照すること。

SSHインタープリターの設定

  1. PyCharmを起動して、[File]メニューバー - [Settings] - [Project: <プロジェクト名>] - [Python Interpreter]を選択する。
  2. [Add Interpreter] - [On SSH...]を選択する。
  3. [New server]を選択して、サーバ情報 (ホスト、ポート、ユーザ名) を指定した後、[Next]ボタンを押下する。
  4. リモート先PCに接続するための認証を入力する。
    パスワードまたは鍵ペアを選択して、パスワードまたはパスフレーズ (必要な場合) を入力する。
  5. リモート先PCのPythonインタープリターへのパスを指定する。
  6. ローカルプロジェクトとサーバ間のパスマッピングを構成する。
  7. [Create]ボタンを押下する。


詳細については、JetBrains公式ドキュメントを参照すること。


MCPサーバの設定

Model Context Protocol (MCP) を使用することにより、AI Assistantは外部ツールやデータソースと連携できる。
MCPサーバに接続することで、AI Assistantの機能を拡張することができる。

サポートされる転送メカニズム

AI Assistantは、以下に示す転送メカニズムをサポートしている。

  • Standard Input/Output (STDIO)
    AI AssistantがMCPサーバをサブプロセスとして起動して、標準入出力でデータを交換する。
  • Streamable HTTP
    HTTPを使用してMCPサーバに接続する。
  • SSE
    レガシーMCPサーバ向けの転送メカニズム


MCPサーバへの接続

MCPサーバに接続する手順を以下に示す。

  1. [Settings] - [Tools] - [AI Assistant] - [Model Context Protocol (MCP)]を選択する。
  2. [Add]ボタンを押下して、新しいMCPサーバ設定を追加する。
  3. JSON設定を入力する。
  4. [OK]ボタンを押下する。
  5. [Apply]ボタンを押下して、MCPサーバを起動する。


JSON設定例

ローカルインストール
 {
    "mcpServers": {
       "filesystem": {
          "command": "node",
          "args": [
             "/path/to/server/dist/index.js",
             "/home/<ユーザ名>/projects"
          ]
       }
    }
 }


NPXを使用する場合
 {
    "mcpServers": {
       "filesystem": {
          "command": "npx",
          "args": [
             "-y",
             "@modelcontextprotocol/server-filesystem",
             "/home/username/projects"
          ]
       }
    }
 }


リモートサーバ
 {
    "mcpServers": {
       "microsoftdocs": {
          "url": "https://learn.microsoft.com/api/mcp"
       }
    }
 }


IDEをMCPサーバとして使用する

JetBrains IDE (バージョン 2025.2以降) は統合MCPサーバを提供しており、外部クライアントからIDEのツールにアクセスできる。

MCPサーバを有効にする手順を以下に示す。

  1. [Settings] - [Tools] - [MCP Server]を選択する。
  2. [Enable MCP Server]を有効にする。
  3. [Clients Auto-Configuration]セクションで、各クライアントの[Auto-Configure]ボタンを押下する。
  4. クライアントを再起動する。


詳細な設定については、PyCharm公式ドキュメントおよびJetBrains公式ドキュメントを参照すること。


ACPを使用したOpenCodeとの連携

ACP (Agent Client Protocol) を使用すると、PyCharmのAI ChatからOpenCodeをコーディングエージェントとして利用できる。

ACPは、コードエディタとAIコーディングエージェント間の通信を標準化するプロトコルである。
エディタはACP互換エージェントをサブプロセスとして起動し、JSON-RPC over stdioで通信する。

PyCharmは、OpenCodeをサブプロセスとして起動して標準入出力を介して通信する。

ACPエージェントはJetBrains AIサービスサブスクリプションなしで利用できる。

前提条件

  • OpenCodeがインストールされ、プロバイダ認証が完了していること。
  • PyCharmでAI AssistantおよびAI Chatが利用可能であること。
    AI AssistantプラグインはPyCharmと互換である。
  • WSL (Windows Subsystem for Linux) 環境ではないこと。
    JetBrains公式ドキュメントでWSL環境でのACP互換エージェントはサポート対象外とされている。


OpenCode側の認証とプロジェクト設定

OpenCodeの認証は、PyCharmの設定ファイル acp.json ファイルにはAPIキーを記述せず、OpenCode側で行う。

JetBrains公式ドキュメントでも、ほとんどのエージェントはAPIキーを acp.json ファイルに記述せず、ターミナルで認証することが推奨されている。

プロバイダを認証するには、ターミナルで以下に示すコマンドを実行する。

opencode auth login


認証済みのプロバイダを確認する場合は、以下に示すコマンドを実行する。

opencode auth list


認証情報は、~/.local/share/opencode/auth.json ファイルに保存される。

プロジェクト設定ファイル

プロジェクト固有のモデル、MCPサーバ、権限等は、Pythonプロジェクトのルートに opencode.json または opencode.jsonc ファイルを配置して設定する。

OpenCodeは起動時に、まずカレントディレクトリで設定ファイルを探し、次に最も近いGitディレクトリまで上方向へ探索する。

複数の設定ファイルが見つかった場合は、それらがマージされる (後の設定が前の設定を上書きする)。
PythonプロジェクトのルートがGitリポジトリのルートと一致する場合が多いため、リポジトリルートに配置すれば自動検出される。

AGENTS.mdによる作業ルール

作業ルールや設計方針は、同じプロジェクトルートの AGENTS.md ファイルに記述する。
ACP経由でも AGENTS.md ファイルのプロジェクトルールは有効である。

AGENTS.md ファイルの探索動作は opencode.json ファイルとは異なる。

OpenCodeは起動時に、カレントディレクトリから上方向へローカルファイル (AGENTS.md または CLAUDE.md) を探索し、最初に見つかったファイルを使用する。(マージされない)
次に、グローバルファイル (~/.config/opencode/AGENTS.md) を参照し、さらにClaude Code互換ファイル (~/.claude/CLAUDE.md) をフォールバックとして使用する。

各カテゴリにおいて、最初に一致したファイルが優先される。

JetBrains側のACP設定

~/.jetbrains/acp.jsonの作成

JetBrains IDEのACP設定は、ユーザ単位の ~/.jetbrains/acp.json ファイルで管理する。

AI Chatツールウィンドウ右上の [...(More)]ボタンから[Add Custom Agent]を選択すると、設定ファイルを作成して編集できる。

手動で作成する場合は、次のコマンドを実行する。

mkdir -p ~/.jetbrains


OpenCode実行ファイルの絶対パスの確認

command キーには、OpenCode実行ファイルの絶対パスを指定する。
JetBrains公式ドキュメントで、command パラメータには実行ファイルのフルパスを使用することが明記されている。

GUIから起動されるPyCharmのプロセスは、シェルの環境変数 PATH を継承しない場合があるため、相対パスやエイリアスは失敗する可能性がある。

次のコマンドで実行ファイルの場所を確認する。

command -v opencode
readlink -f "$(command -v opencode)"


出力されたパスを command キーの値に使用する。

acp.jsonの記述

~/.jetbrains/acp.json ファイルに、次の内容を記述する。

 {
    "default_mcp_settings": {
       "use_custom_mcp": true,
       "use_idea_mcp": true
    },
    "agent_servers": {
       "OpenCode": {
          "command": "/home/<ユーザ名>/.opencode/bin/opencode",
          "args": [
             "acp"
          ]
       }
    }
 }


command キーのパスは、実際に確認した絶対パスへ置き換える。
args 配列には acp を指定して、OpenCodeをACPサーバとして起動する。

acp.jsonの設定項目
項目 配置 説明
default_mcp_settings 最上位 全ローカルエージェントに適用する既定のMCP設定
エージェント固有設定で上書き可能
use_custom_mcp default_mcp_settings 配下 ユーザが設定したMCPサーバをエージェントへ公開する。
既定値は true
use_idea_mcp default_mcp_settings 配下 IntelliJ MCP Serverをエージェントへ公開する。
既定値は false

trueの場合、idea_mcp_allowed_tools キーで公開ツールを制限可能
agent_servers 最上位 ACPエージェントの一覧
キーはAI Chatに表示される名前になる。
command 各エージェント配下 エージェントの実行ファイル
JetBrainsがサブプロセスとして起動するため、絶対パスを指定する。
args 各エージェント配下 起動時に渡す引数の配列
OpenCodeでは acp を指定する。
env (省略可能) 各エージェント配下 エージェントプロセスに設定する環境変数
プロキシ等が必要な場合に使用する。
APIキーの平文記述は避けること。


特定の作業ディレクトリで起動する設定

--cwd オプションを使用すると、特定の作業ディレクトリでOpenCodeを起動できる。

複数のPythonプロジェクトを扱う場合に有効である。

 {
    "agent_servers": {
       "OpenCode-ProjectA": {
          "command": "/home/<ユーザ名>/.opencode/bin/opencode",
          "args": [
             "acp",
             "--cwd",
             "/path/to/project-a"
          ]
       },
       "OpenCode-ProjectB": {
          "command": "/home/<ユーザ名>/.opencode/bin/opencode",
          "args": [
             "acp",
             "--cwd",
             "/path/to/project-b"
          ]
       }
    }
 }


ACP Registry

ACP Registryは、JetBrainsが提供するキュレートされたACPエージェントのインターフェースである。
ACP Registryに登録されているエージェントは、AI Chatから直接インストールできる。

ACP Registryからエージェントをインストールする手順を、以下に示す。

  1. AI Chatツールウィンドウを開く。
  2. チャットモードセレクタから[Install From ACP Registry]を選択する。
    または、[Settings] - [Tools] - [AI Assistant] - [Agents]から開くこともできる。
  3. [Agents]ページで、目的のエージェントを選択してインストールする。
  4. インストール完了後、AI Chatのエージェントセレクタにエージェントが表示される。


ACP Registryに目的のエージェントが含まれていない場合は、上記の手動設定 (~/.jetbrains/acp.json ファイルへの記述) でカスタムエージェントを追加できる。

OpenCodeをACP経由で使用する場合は、手動設定を使用すること。

PyCharmでの有効化と動作確認

設定の反映

acp.json ファイルの保存後、PyCharmのAI Chatでエージェントを選択できる。

表示されない場合は、JSON形式と実行ファイルのパスを確認して、PyCharmを再起動する。

エージェントの選択

PyCharmでAI Chatツールウィンドウを開いて、チャットモードのエージェントセレクタから[OpenCode]を選択する。

Pythonプロジェクトの動作確認

Pythonプロジェクトを開いた状態で、読み取り中心の指示を送信する。

 # プロンプト例
 
 このPythonプロジェクトの構成と主要モジュールを調査し、ビルド方法とテスト方法を要約してください。
 ファイルは変更しないでください。


エージェントが応答して、プロジェクト内のファイルを参照できれば、ACP連携を確認できる。

OpenCode単体での事前確認

PyCharm側を確認する前に、ターミナルで opencode acp コマンドを実行して、起動できるか確認する。

JetBrains公式ドキュメントでも、ターミナルで手動実行して動作確認することが推奨されている。

~/.opencode/bin/opencode acp


command キーに設定した絶対パスへ置き換えて実行する。
このコマンドはACPサーバを起動して、標準入力と標準出力でACPメッセージを待機する。

プロジェクト単位の設定

ACPエージェントの登録はユーザ単位の ~/.jetbrains/acp.json ファイルで行う。

一方、OpenCodeの動作はプロジェクト単位で設定できる。
次のファイルをPythonプロジェクトのルートに配置する。

  • opencode.json または opencode.jsonc
    モデル、MCPサーバ、権限等のプロジェクト設定を記述する。
  • AGENTS.md
    作業ルール、設計方針、禁止事項等を記述する。


ACP経由での機能制限

OpenCodeはACP経由でもターミナルと同様に動作するが、一部の組み込みスラッシュコマンド (/undo および /redo) は現在サポートされていない。

トラブルシューティング

OpenCodeエージェントがAI Chatに表示されない
  • 原因
    acp.json ファイルのJSON形式が正しくない、または、設定変更がPyCharmに反映されていない。
  • 解決方法
    • acp.json ファイルが正しいJSON形式であることを確認する。
    • PyCharmを再起動する。


エージェントの起動に失敗する
  • 原因
    command キーの絶対パスが誤っている、OpenCodeの認証が完了していない、実行ファイルを起動できない。
  • 解決方法
    • command -v opencode コマンドおよび readlink -f コマンドで絶対パスを確認する。
    • 設定した絶対パスで opencode acp コマンドを手動実行する。
    • opencode auth list コマンドを実行して、プロバイダ認証を確認する。


ACPログの取得

AI Chatツールウィンドウ右上の [...(More)] ボタンから [Get ACP Logs] を選択すると、エージェントログのアーカイブを取得できる。

詳細な要求と応答を記録するには、Registryの llm.agent.extended.logging キーを有効してPyCharmを再起動する。

Registryを開く手順を、以下に示す。

  1. [Navigate]メニュー - [Search Everywhere]を選択する、または、[Shift]キーを2回押下して検索ウィンドウを開く。
  2. Registry と入力して、[Enter]キーを押下する。
  3. ダイアログで[Ctrl] + [F]キーを押下して、llm.agent.extended.logging キーを検索して有効化する。
  4. [Close]ボタンを押下して、PyCharmを再起動する。


ログにはチャット内容等の機密情報が含まれる可能性があるため、共有前に確認すること。

セキュリティと運用上の注意

  • APIキーを ~/.jetbrains/acp.json ファイルに平文で記述しないこと。
    OpenCodeの認証機能 (opencode auth login) で設定した認証情報を使用する。
    認証情報は、~/.local/share/opencode/auth.json ファイルに保存される。
  • command キーには絶対パスを指定すること。
    シェルのエイリアスや相対パスは、PyCharmから起動できない場合がある。
  • use_idea_mcp キーと use_custom_mcp キーの公開範囲を確認すること。
    有効にしたMCPサーバの機能がエージェントから利用可能になる。
    必要最小限に留め、idea_mcp_allowed_tools キーでツールを制限できる。
  • 詳細ログを共有する前に機密情報を除去すること。
    llm.agent.extended.logging 有効時のログには、チャット内容やファイル内容が含まれる可能性がある。
  • WSL環境ではACP互換エージェントを使用しないこと。
    JetBrains公式ドキュメントでサポート対象外とされている。


関連情報