VS Code での Python 環境
Python Environments 拡張機能は、Visual Studio Code の UI に環境およびパッケージ管理機能をもたらします。この拡張機能は、venv、uv、conda、pyenv、poetry、pipenv のいずれを使用しているかに関係なく、環境の作成、パッケージのインストール、インタープリターの切り替えを行うための統合インターフェースを提供します。
主な機能
- 環境の作成、削除、切り替え
- パッケージのインストールと管理
- ターミナルでの Python 自動有効化
- 特定のファイルやフォルダーへの環境の割り当て(「Python プロジェクト」と呼びます)
この拡張機能は Python 拡張機能 と連携して動作し、セットアップなしで使い始めることができます。
クイックスタート
ほとんどのユーザーは設定を行う必要はありません。 拡張機能は自動的に Python 環境を検出し、コード実行時にそれらを使用します。
ワークスペース全体で 1 つの環境を使用するような基本的なセットアップの場合
- Python ファイルを開く
- ステータスバーを確認して、現在アクティブな環境を確認する
- 環境を切り替えるには、ステータスバーの環境コントロールを選択する
環境を作成する必要がありますか? Python サイドバーを開き、Environment Managers を展開して、+ ボタンを選択してください。拡張機能が手順を案内します。
ユーザーインターフェースコンポーネント
環境の検出
以下の環境マネージャーが自動的に検出されます
| マネージャー | 検索場所 |
|---|---|
| venv | ワークスペースフォルダー(workspaceSearchPaths で設定可能) |
| システム Python | PATH、/usr/bin、/usr/local/bin、Windows レジストリ、python.org のインストール先 |
| Conda | conda info --envs を実行して設定済みの環境ディレクトリを検索 |
| Pyenv | $PYENV_ROOT/versions または ~/.pyenv/versions |
| Poetry | プロジェクトの .venv フォルダーおよび ~/.cache/pypoetry/virtualenvs |
| Pipenv | ~/.local/share/virtualenvs (Linux/macOS) または %USERPROFILE%\.virtualenvs (Windows) |
検出は拡張機能の起動時に自動的に実行されます。この拡張機能は、システム内の Python 環境をスキャンする Python Environment Tool (PET) Rust バイナリを使用します。PET は PATH をチェック(例: conda、pyenv、poetry 実行ファイルの検索)し、既知のインストール先を確認することで環境マネージャーを特定し、各マネージャーによって管理されている環境を検索します。
手動で更新をトリガーするには
- コマンドパレットを開く (
Cmd+Shift+PまたはCtrl+Shift+P) - Python Environments: Refresh All Environment Managers を実行する
Environment Managers ビューのヘッダーにある更新アイコンをクリックすることもできます。

更新アイコンを選択して環境を再スキャンします。
検出された環境を表示する
検出された環境は 2 つの場所に表示されます
- Environment Managers ビュー: Python サイドバー内で、環境がマネージャーの種類(venv, Conda など)ごとにグループ化されます
- 環境の選択: プロジェクトのインタープリターを選択する際、検出されたすべての環境が統合リストに表示されます

Environment Managers ビューは環境を種類ごとにグループ化します。
まだ環境がありませんか?拡張機能で作成する方法については、Python プロジェクト のセクションを参照してください。
検索パスの構成
デフォルトでは、拡張機能はグロブパターン ./**/.venv を使用して、ワークスペース全体から仮想環境を検索します。これにより、ワークスペース内のどこにある .venv という名前のフォルダーでも検出されます。
カスタムの場所にある環境を検出するには、python-envs.workspaceSearchPaths 設定を更新します
この設定は、ユーザーレベルではなく、ワークスペースまたはフォルダーレベルで構成する必要があります。
{
"python-envs.workspaceSearchPaths": ["./**/.venv", "./envs/**", "./my-custom-env"]
}
ヒント:
- 再帰検索には
**を使用します(例:./**/envは任意の深さにあるenvという名前のフォルダーを検索します) - 相対パスはワークスペースフォルダーのルートからのパスとして解決されます
検索パス設定を素早く開くには
- コマンドパレットを開く
- Python Environments: Configure Search Settings を実行する

カスタムのグロブパターンを追加して、追加の場所を検索します。
グローバル検索パス: ワークスペース外の環境(共有の ~/envs フォルダーなど)については、python-envs.globalSearchPaths を使用します
{
"python-envs.globalSearchPaths": ["/Users/yourname/envs", "/opt/shared-envs"]
}
この設定には絶対パスが必要であり、ユーザー(グローバル)レベルで構成されます。
レガシー設定: 以前に python.venvPath や python.venvFolders を使用していた場合、これらは新しい検索パスと自動的に統合されます。将来の互換性を考慮して、python-envs.globalSearchPaths への移行を検討してください。
環境を選択する
検出された環境を使用するには
- ステータスバー: ウィンドウ下部に表示されている Python バージョンを選択する
- コマンドパレット: Python: Select Interpreter を実行し、リストから選択する
選択された環境は、コードの実行、デバッグ、IntelliSense などの言語機能に使用されます。
デフォルトでは、デバッガーは選択した環境を使用します。デバッグ用に異なるインタープリターを使用するには、launch.json デバッグ設定で python プロパティを設定してください。

ステータスバーで Python バージョンを選択して環境を切り替えます。 拡張機能の自動選択について: 環境を明示的に選択せずにワークスペースを開いた場合、拡張機能は次の順序で自動的に環境を選択します
- ワークスペースローカルの仮想環境 (
.venv,venv) - グローバル/システムインタープリター
この優先順位を上書きするには、python-envs.defaultEnvManager を設定して特定のマネージャー(例: ms-python.python:conda)を優先させるか、フォルダーごとに制御するために Python プロジェクト を構成してください。レガシー設定も引き続きサポートされています。
環境検出のトラブルシューティング
| 症状 | 原因 | 解決策 |
|---|---|---|
| 環境がリストに表示されない | 場所が検索パスに含まれていない | workspaceSearchPaths または globalSearchPaths にパスを追加してください |
| 環境が "(broken)" と表示される | pyvenv.cfg が欠落している、または無効な Python 実行ファイル |
環境を再作成するか、破損したファイルを修正してください |
| 最近作成した環境が見つからない | 検出キャッシュが古い | Refresh All Environment Managers を実行してください |
| Conda 環境が見つからない | Conda が検出されていない | conda が PATH にあることを確認するか、Conda をインストールしてください |
| 設定が反映されない | 設定範囲が間違っている | workspaceSearchPaths がユーザーレベルではなくワークスペースレベルで設定されていることを確認してください |
詳細なトラブルシューティングを行うには、Python Environment Tool (PET) を直接実行して生の検出結果を確認します
- コマンドパレットを開く
- Python Environments: Run Python Environment Tool (PET) in Terminal... を実行する
- オプションを選択
- Find All Environments:
pet find --verboseを実行し、詳細な出力とともに検出されたすべての環境をリストします - Resolve Environment...: Python 実行ファイルへのパスを入力し、特定の環境が検出されない理由をデバッグします
- Find All Environments:

PET の詳細出力には、どの環境が、なぜ検出されたのかが正確に表示されます。
高度なトラブルシューティングは、次のようなシナリオに役立ちます
- 環境が検出されているかどうかを確認する必要がある
- 環境が特定のマネージャーの下に表示される理由を理解したい
- パス解決の問題をデバッグしている
環境の作成、削除、管理
環境を作成する
この拡張機能には、高速な「クイック作成」と制御性の高い「カスタム作成」の 2 つの方法があります。
クイック作成
Environment Managers ビューの + ボタンを選択します。拡張機能は次の手順を実行します
- デフォルトのマネージャーを使用します(デフォルトは venv、
python-envs.defaultEnvManagerで変更可能) - 利用可能な最新の Python バージョンを選択します
- 環境に
.venv(すでに存在する場合は.venv-1,.venv-2) という名前を付けます - 存在する場合は
requirements.txtまたはpyproject.tomlから依存関係をインストールします - ワークスペースの新しい環境を選択します
これが、動作する環境を素早く構築する方法です。

クイック作成は、適切なデフォルト値で環境を構築します。
カスタム作成
より細かく制御するには、コマンドパレットから Python: Create Environment を実行し、プロンプトに従ってください
- マネージャーの選択: venv または conda
- Python バージョンの選択: 検出されたインタープリター (venv) または利用可能な Python バージョン (conda) から選択
- 環境に名前を付ける: カスタム名を入力するか、デフォルトを受け入れる
- 依存関係のインストール:
requirements.txt、pyproject.toml、またはenvironment.ymlからインストールするかを選択

カスタム作成では、各ステップを構成できます。
より高速な作成のために uv を使用する
uv がインストールされている場合、拡張機能は venv の作成とパッケージのインストールに自動的に使用します。これは標準ツールよりも大幅に高速です。次の設定で構成してください。
{
"python-envs.alwaysUseUv": true
}
alwaysUseUv が有効(デフォルト)の場合、uv がすべての仮想環境を管理します。false に設定すると、uv で作成された環境に対してのみ uv を使用します。
サポートされているマネージャー
| マネージャー | クイック作成 | カスタム作成 |
|---|---|---|
| venv | ✅ | ✅ |
| conda | ✅ | ✅ |
| pyenv | — | — |
| poetry | — | — |
| pipenv | — | — |
VS Code から環境を作成できるのは venv と conda のみです。他のマネージャー(pyenv、poetry、pipenv)は既存の環境を検出しますが、拡張機能を通じて新しい環境を作成することはできません。それぞれの CLI ツールを使用して環境を作成すれば、拡張機能が自動的に検出します。
環境を削除する
環境を削除するには
- Environment Managers ビューで、該当する環境を見つけます
- 右クリックして Delete を選択します
環境を削除すると、ディスク上の環境フォルダーが削除されます。この環境を使用していたプロジェクトは、新しい環境を選択する必要があります。
Python プロジェクト
Python プロジェクト とは、特定の環境に関連付けたい任意のファイルやフォルダーのことです。デフォルトでは、ワークスペース全体で 1 つの環境が使用されます。プロジェクトを使用すると、異なるフォルダーに異なる環境を割り当てることができます。これは、モノレポ、マイクロサービス、または複数の Python バージョンでのテストにおいて不可欠です。
プロジェクトを使う理由
| シナリオ | プロジェクトなし | プロジェクトあり |
|---|---|---|
| バックエンド + ML サービスのモノレポ | 両方で 1 つのインタープリターを共有 | それぞれが独自の環境を持つ |
| Python 3.10 と 3.12 のテスト | 手動でインタープリターを切り替え | 異なるフォルダーに異なるバージョンを割り当て |
| チームメンバーとの共有ワークスペース | 各自で手動構成 | .vscode/settings.json を介して設定を同期 |
ワークスペース全体で環境が 1 つしかない場合は、プロジェクトを明示的にセットアップする必要はありません。インタープリターを選択するだけで完了です。
Workspace
├── Python Project: backend/
│ └── Environment: .venv (Python 3.12)
│ └── Manager: venv
│
├── Python Project: frontend-utils/
│ └── Environment: .venv (Python 3.10)
│ └── Manager: venv
│
└── Python Project: ml-pipeline/
└── Environment: ml-env (Python 3.11)
└── Manager: conda
プロジェクト割り当ては何に使用されるか
- 実行とデバッグ: プロジェクトの環境を使用
- ターミナル: プロジェクトの環境でアクティブ化
- テストエクスプローラー: 各プロジェクトが独自のインタープリターを持つ独自のテストツリーを取得(マルチプロジェクトテスト を参照)
Pylance と Jupyter は現在、プロジェクトごとの環境ではなく、ワークスペースごとに単一のインタープリターを使用します。既知の制限事項 を参照してください。
プロジェクトを追加する
フォルダーやファイルを個別のプロジェクトとして扱うには
- エクスプローラーで右クリックします
- Add as Python Project を選択します
または、Python Projects ビューで + を選択し、次のいずれかのオプションを選びます
- Add Existing: 手動でファイル/フォルダーを選択
- Auto Find:
pyproject.tomlやsetup.pyを持つフォルダーを検出
プロジェクトを追加すると、そのフォルダーは自動的に環境検索パスに追加されます。プロジェクトフォルダー内の環境(例: my-project/.venv)は、workspaceSearchPaths を更新しなくても自動的に検出されます。

既存のフォルダーを追加するか、プロジェクトを自動検出します。
環境を割り当てる
フォルダーがプロジェクトになったら、環境を割り当てます
- Python Projects ビューで、プロジェクトの下に表示されている環境(または「No environment」)をクリックします
- 検出された環境から選択します
選択された環境は、そのプロジェクト内のファイルを実行またはデバッグするたびに使用されます。

環境をクリックして変更します。
設定の保存方法
プロジェクトに環境を割り当てると、拡張機能はワークスペース設定 (.vscode/settings.json) に書き込みます
{
"python-envs.pythonProjects": [
{
"path": "backend",
"envManager": "ms-python.python:venv"
},
{
"path": "ml-service",
"envManager": "ms-python.python:conda"
}
]
}
設定にはハードコードされたインタープリターのパスではなく、環境マネージャー が保存されることに注目してください。拡張機能は、どの環境を選択したかを個別に記憶し、実行時に解決します。この設計により、設定の共有が容易になります
- マシン固有のパスなし: チームメンバーが
/Users/yourname/.venvを持つ必要はありません - システム間でポータブル: macOS、Windows、Linux で動作
- 環境再作成後も保持:
.venvを削除して再作成しても動作します
チームメイトとの共有
.vscode/settings.jsonをリポジトリにコミットします- チームメイトがワークスペースをクローンして開きます
- 各自で環境を作成します(クイック作成が最適です)
- 拡張機能は各プロジェクトの設定されたマネージャーを自動的に使用します
環境 フォルダー(.venv など)は各マシン上で作成する必要があります。共有されるのは設定のみで、環境そのものではありません。
プロジェクトを削除する
Python Projects ビューでプロジェクトを右クリックし、Remove Python Project を選択します。これによりマッピングが削除されます。ファイルは削除されません。
テンプレートからプロジェクトを作成する
適切な構造で新しいプロジェクトを雛形作成するには、コマンドパレットから Python Envs: Create New Project from Template を実行します。次から選択します
- Package:
pyproject.toml、パッケージディレクトリ、テストを含むフォルダーを作成 - Script: インライン依存関係メタデータ (PEP 723) を含む単一の
.pyファイルを作成
テンプレート構造の詳細については、完全な Python Projects ガイド を参照してください。
詳細情報
テンプレート、マルチルートワークスペース、一般的なシナリオ、トラブルシューティングの詳細なガイダンスについては、完全な Python Projects ガイド を参照してください。
パッケージ管理
ターミナルを開かずに、VS Code から直接 Python パッケージをインストールおよびアンインストールします。
パッケージをインストールする
- Environment Managers ビューで環境を見つけます
- 右クリックして Manage Packages を選択します
- パッケージを検索し、インストールしたいものを選択します
または、コマンドパレットから Python Envs: Manage Packages を実行します。

VS Code から直接パッケージを検索およびインストールします。
要件ファイルからのインストール: requirements.txt、pyproject.toml、または environment.yml からパッケージをインストールすることもできます。求められたらファイルを選択すると、拡張機能はリストされているすべての依存関係をインストールします。
パッケージをアンインストールする
- Environment Managers ビューで環境を展開して、インストールされているパッケージを表示します
- パッケージを右クリックして Uninstall Package を選択します
環境別のパッケージマネージャー
拡張機能は環境に基づいて適切なパッケージマネージャーを自動的に使用します
| 環境 | パッケージマネージャー |
|---|---|
| venv | pip |
| conda | conda |
| pyenv | pip |
| poetry | pip |
| pipenv | pip |
| system | pip |
デフォルトを上書きするには、python-envs.defaultPackageManager を設定します。
uv を使用した高速インストール
uv がインストールされており、python-envs.alwaysUseUv が有効(デフォルト)の場合、venv 環境でのパッケージインストールは通常の pip ではなく uv pip を使用します。これは、大規模な依存関係ツリーにおいて大幅に高速です。
設定と構成
このセクションでは、すべての拡張機能設定、インタープリター選択の仕組み、およびレガシー設定の移行について説明します。
インタープリター選択の優先順位
ワークスペースを開くと、拡張機能は以下の順序でソースをチェックし、使用する環境を決定します
| 優先順位 | ソース | 適用条件 |
|---|---|---|
| 1 | pythonProjects[] |
このパスに対してプロジェクトが構成されている場合 |
| 2 | defaultEnvManager |
明示的に設定している場合のみ(デフォルト値ではない) |
| 3 | python.defaultInterpreterPath |
レガシー設定(構成されている場合) |
| 4 | 自動検出 | ワークスペースローカルの .venv を検索し、次にグローバルインタープリターを検索 |
原則: ユーザーが構成した設定が常にデフォルトに優先されます。defaultEnvManager を明示的に設定していない場合(組み込みのデフォルト値がある場合)、拡張機能はそれをスキップして次の優先順位を確認します。
キャッシュ: 拡張機能はパフォーマンスのために解決された環境をキャッシュしますが、明示的な設定が常にキャッシュされた値より優先されます。古いキャッシュが選択内容を上書きすることを心配する必要はありません。
インタープリター選択の動作の詳細については、Interpreter Selection Quick Reference を参照してください。
設定が書き込まれるタイミング
拡張機能は、明示的な変更を行った場合にのみ設定を書き込みます
| アクション | 設定への書き込み? |
|---|---|
| ワークスペースを開く(初回) | ❌ いいえ |
| 拡張機能が環境を自動選択 | ❌ いいえ |
| 手動で環境を選択 | ✅ はい、pythonProjects を更新 |
| 新しい環境を作成 | ✅ はい、pythonProjects を更新する可能性がある |
| UI で設定を変更 | ✅ はい |
これにより、ワークスペースを開くたびに自動生成されたエントリが settings.json に追加されることを防ぎます。
Python Environments 設定
| 設定 | 既定値 | 説明 |
|---|---|---|
python-envs.defaultEnvManager |
ms-python.python:venv |
環境作成時のデフォルト環境マネージャー。オプション: ms-python.python:venv, ms-python.python:conda |
python-envs.defaultPackageManager |
ms-python.python:pip |
デフォルトのパッケージマネージャー。通常は環境マネージャーによって決定されます。 |
python-envs.pythonProjects |
[] |
プロジェクト構成の配列。UI を介して管理され、手動で編集されることはほとんどありません。 |
python-envs.workspaceSearchPaths |
["./**/.venv"] |
ワークスペース内の環境を検索するためのグロブパターン。ワークスペースレベルで設定する必要があります。 |
python-envs.globalSearchPaths |
[] |
グローバルに環境を検索するための絶対パス(例: ~/envs)。 |
python-envs.alwaysUseUv |
true |
利用可能な場合、venv の作成とパッケージインストールに uv を使用します。 |
ターミナル設定
VS Code でターミナルを開くと、拡張機能は自動的に選択した Python 環境をアクティブ化し、python、pip および関連コマンドが正しいインタープリターを使用するようにします。
| 設定 | 既定値 | 説明 |
|---|---|---|
python-envs.terminal.autoActivationType |
command |
ターミナルで環境をアクティブ化する方法を決定します。下記を参照してください。 |
python-envs.terminal.showActivateButton |
false |
(実験的) ターミナルにアクティブ化/非アクティブ化ボタンを表示します。 |
python.terminal.useEnvFile |
false |
true の場合、.env ファイルの変数をターミナルに注入します。 |
python.envFile |
${workspaceFolder}/.env |
useEnvFile が有効な場合に使用する .env ファイルへのパス。 |
ターミナルのアクティブ化タイプ
| 値 | の動作 | 最適な用途 |
|---|---|---|
shellStartup |
シェル起動スクリプトを介してアクティブ化します。ターミナルが開くとすぐに環境がアクティブになります | Copilot ターミナルコマンド、よりクリーンな体験 |
command |
ターミナルが開いた後、視覚的にアクティブ化コマンドを実行します | すべてのシェルとの互換性 |
オフ |
自動アクティブ化なし | 手動制御 |
Copilot を使用してターミナルコマンドを実行する場合は、shellStartup を使用してください。最初のコマンドが実行される前に環境がアクティブであることを保証します。これは将来のリリースでデフォルトになります。
autoActivationType を変更した後、変更を反映させるためにターミナルを再起動してください。shellStartup の変更を元に戻すには、Python Envs: Revert Shell Startup Script Changes を実行してください。
特定の環境でターミナルを開く
任意の環境をアクティブにした状態で新しいターミナルを開くことができます
- Environment Managers ビューで、該当する環境を見つけます
- 右クリックして Open in Terminal を選択します

任意の環境をアクティブにしてターミナルを開きます。
詳細なトラブルシューティングとアクティブ化の仕組みについては、Terminal Auto-Activation Explained を参照してください。
.env ファイルのサポート
.env ファイルからターミナルに環境変数を注入するには
- ワークスペースのルートに
.envファイルを作成するか、python.envFileでカスタムパスを指定します python.terminal.useEnvFileをtrueに設定します
# .env
API_KEY=your-secret-key
DATABASE_URL=postgres:///mydb
変数はターミナルの作成時に注入されます。これは、ソース管理にコミットすべきではない開発用の資格情報に便利です。
レガシー設定
これらの Python 拡張機能の設定は引き続きサポートされていますが、新しい代替設定があります
| レガシー設定 | 新しい代替設定 | 注記 |
|---|---|---|
python.venvPath |
python-envs.globalSearchPaths |
自動的に統合されます。移行を検討してください。 |
python.venvFolders |
python-envs.globalSearchPaths |
自動的に統合されます。移行を検討してください。 |
python.terminal.activateEnvironment |
python-envs.terminal.autoActivationType |
off に設定して無効にします。新しい設定が優先されます。 |
python.defaultInterpreterPath |
— | 引き続きサポートされています。優先順位チェーンのフォールバックとして使用されます。 |
python.condaPath |
— | 引き続きサポートされています。カスタム conda 実行ファイルの場所を指定します。 |
設定範囲リファレンス
設定は構成場所によって動作が異なります
| 設定 | ユーザー | ワークスペース | フォルダー |
|---|---|---|---|
defaultEnvManager |
✅ | ✅ | ❌ |
defaultPackageManager |
✅ | ✅ | ❌ |
pythonProjects |
❌ | ✅ | ✅ |
workspaceSearchPaths |
❌ | ✅ | ✅ |
globalSearchPaths |
✅ | ❌ | ❌ |
alwaysUseUv |
✅ | ❌ | ❌ |
terminal.autoActivationType |
✅ | ❌ | ❌ |
ヒント: workspaceSearchPaths はワークスペースフォルダーからの相対パスであるため、ワークスペースまたはフォルダーレベル(ユーザーレベルではなく)で設定する必要があります。
拡張性
Python Environments 拡張機能は拡張性を考慮して設計されています。任意の環境やパッケージマネージャーが Python サイドバーに接続する拡張機能を構築し、組み込みのマネージャーと並べて表示できます。つまり、この拡張機能の更新を待たずに、新しいツールをサポートするようにエコシステムを成長させることができます。
コミュニティメンバーは、Pixi Extension のような追加の環境マネージャー向けの拡張機能を構築しています。
既知の制限事項
Pylance とマルチプロジェクトワークスペース
Pylance は、同一ワークスペース内での異なるインタープリターを持つ複数の Python プロジェクトをサポートしていません。Python プロジェクト を使用して異なるフォルダーに別々の環境を構成しても、Pylance はワークスペース全体で単一のインタープリター(通常はワークスペースルートに関連付けられたもの)を使用します。異なるフォルダーに異なるインタープリターを使用するには、それらを マルチルートワークスペース (File > Add Folder to Workspace) 内のワークスペースフォルダーとして追加してください。Pylance はワークスペースフォルダーごとに独立して実行されるためです。
Jupyter ノートブック
Jupyter ノートブックは、環境の検出に Python Environments API を使用しません。代わりに、以前の Python 拡張機能 API に依存しています。つまり、ノートブックのカーネル選択には Environment Managers ビューとは異なる環境セットが表示される場合があります。
次のステップ
- Python チュートリアル - VS Code での Python の使用を開始する。
- デバッグ - Python コードをデバッグする方法を学ぶ。
- テスト - Python プロジェクトのテストを構成および実行する。
- 設定リファレンス - すべての Python 拡張機能の設定を探索する。