VS Code での Python 環境
Python における「環境 (environment)」とは、インタープリターとインストールされた任意の数のパッケージから構成される、Python プログラムが実行されるコンテキストです。
注: Python プログラミング言語に慣れるには、「その他の Python リソース」を確認してください。
Python 環境の種類
グローバル環境
デフォルトでは、インストールされているすべての Python インタープリターは、独自のグローバル環境で実行されます。たとえば、新しいターミナルで (Python のインストール方法に応じて) python、python3、または py を実行するだけの場合、そのインタープリターのグローバル環境で実行しています。インストールまたはアンインストールしたパッケージは、グローバル環境とその中で実行するすべてのプログラムに影響します。
ヒント: Python では、ローカル環境を使用するなどして、ワークスペース固有の環境を作成することが推奨されます。
ローカル環境
ワークスペース用に作成できる環境には、仮想環境と conda 環境の 2 種類があります。これらの環境を使用すると、他の環境に影響を与えることなくパッケージをインストールでき、ワークスペースのパッケージのインストールを分離できます。
仮想環境
仮想環境は、環境を作成するための組み込みの方法です。仮想環境は、特定のインタープリターへのコピー (またはシンボリックリンク) を含むフォルダーを作成します。仮想環境にパッケージをインストールすると、この新しいフォルダーに格納されるため、他のワークスペースで使用される他のパッケージから隔離されます。
注: 仮想環境フォルダーをワークスペースとして開くことは可能ですが、推奨されず、Python 拡張機能の使用に問題が生じる可能性があります。
Conda 環境
conda 環境は、conda パッケージマネージャーを使用して管理される Python 環境です (「conda の開始」を参照)。conda 環境と仮想環境のどちらを選択するかは、パッケージングのニーズ、チーム標準などによって異なります。
Python 環境ツール
次の表に、Python 環境に関係するさまざまなツールを示します。
| ツール | 定義と目的 |
|---|---|
| pip | パッケージをインストールおよび更新する Python パッケージマネージャーです。Python 3.9 以降にデフォルトでインストールされます (Debian ベースの OS の場合を除く。その場合は python3-pip をインストールしてください)。 |
| venv | 異なるプロジェクトに対して個別のパッケージインストールを管理でき、Python 3 にデフォルトでインストールされます (Debian ベースの OS の場合を除く。その場合は python3-venv をインストールしてください)。 |
| conda | Miniconda と共にインストールされます。パッケージと仮想環境の両方を管理するために使用できます。通常、データサイエンスプロジェクトで使用されます。 |
環境の作成
環境作成コマンドの使用
仮想環境または Anaconda を使用して VS Code でローカル環境を作成するには、次の手順に従います。コマンドパレットを開き (⇧⌘P (Windows、Linux Ctrl+Shift+P))、Python: 環境の作成コマンドを検索して選択します。
このコマンドは、Venv または Conda の環境タイプの一覧を表示します。

Venv を使用して環境を作成する場合、このコマンドは新しい仮想環境のベースとして使用できるインタープリターの一覧を表示します。

Conda を使用して環境を作成する場合、このコマンドはプロジェクトに使用できる Python バージョンの一覧を表示します。

目的のインタープリターまたは Python バージョンを選択すると、環境作成の進行状況を示す通知が表示され、環境フォルダーがワークスペースに表示されます。

注: このコマンドは、プロジェクトフォルダーにある
requirements.txt、pyproject.toml、またはenvironment.ymlなどの要件/依存関係ファイルに記載されている必要なパッケージもインストールします。また、誤って仮想環境をソース管理にコミットしないように、仮想環境に.gitignoreファイルも追加します。
ターミナルで仮想環境を作成する
手動で仮想環境を作成する場合は、次のコマンドを使用します (ここで ".venv" は環境フォルダーの名前です)。
# macOS/Linux
# You may need to run `sudo apt-get install python3-venv` first on Debian-based OSs
python3 -m venv .venv
# Windows
# You can also use `py -3 -m venv .venv`
python -m venv .venv
注:
venvモジュールについて詳しくは、Python.org の「仮想環境の作成」を参照してください。
新しい仮想環境を作成すると、VS Code にプロンプトが表示され、ワークスペース用に選択できるようになります。

ヒント: 誤って仮想環境をコミットしないように、ソース管理設定を更新してください (たとえば
.gitignoreに)。仮想環境はポータブルではないため、他のユーザーが使用するためにコミットすることは通常意味がありません。
ターミナルで Conda 環境を作成する
Python 拡張機能は、既存の Conda 環境を自動的に検出します。Conda 環境に Python インタープリターをインストールすることをお勧めします。そうしないと、環境を選択した後にインストールされます。たとえば、次のコマンドは、Python 3.9 インタープリターといくつかのライブラリを持つ env-01 という名前の Conda 環境を作成します。
conda create -n env-01 python=3.9 scipy=0.15.0 numpy
注: conda コマンドラインの詳細については、「Conda 環境」を参照してください。
補足事項
-
VS Code の実行中に新しい conda 環境を作成した場合、Python: インタープリターの選択 ウィンドウの右上にある更新アイコンを使用してください。そうしないと、そこに環境が見つからない場合があります。

-
シェルからの観点から環境が適切に設定されていることを確認するには、Anaconda プロンプトを使用し、目的の環境をアクティブ化します。次に、
code .コマンドを入力して VS Code を起動できます。VS Code が開いたら、コマンドパレットを使用するか、ステータスバーをクリックしてインタープリターを選択できます。 -
VS Code の Python 拡張機能には現在 conda
environment.ymlファイルとの直接統合はありませんが、VS Code 自体は優れた YAML エディターです。 -
デフォルトのシェルが PowerShell に設定されている場合、VS Code 統合ターミナルで Conda 環境を自動的にアクティブ化することはできません。シェルを変更するには、「統合ターミナル - ターミナルプロファイル」を参照してください。
-
アクティブ化に使用する
conda実行可能ファイルへのパスを手動で指定できます (バージョン 4.4 以降)。これを行うには、コマンドパレットを開き (⇧⌘P (Windows、Linux Ctrl+Shift+P))、基本設定: ユーザー設定を開くを実行します。次に、ユーザー設定の Python 拡張機能セクションにあるpython.condaPathに適切なパスを設定します。
Python インタープリターの操作
環境の選択とアクティブ化
Python 拡張機能は、ワークスペースに最適な環境を検索して選択しようとします。特定の環境を選択する場合は、コマンドパレット (⇧⌘P (Windows、Linux Ctrl+Shift+P)) からPython: インタープリターの選択コマンドを使用します。

注: Python 拡張機能がインタープリターを見つけられない場合、警告を発します。macOS 12.2 以前では、既知の互換性の問題があるため、OS にインストールされている Python インタープリターを使用している場合にも拡張機能は警告を発します。どちらの場合でも、ユーザー設定で
python.disableInstallationCheckをtrueに設定することで、これらの警告を無効にできます。
Python: インタープリターの選択コマンドは、利用可能なグローバル環境、conda 環境、仮想環境の一覧を表示します。(これらの環境タイプの違いを含む詳細については、「拡張機能が環境を検索する場所」セクションを参照してください。) たとえば、次の画像は、ワークスペースフォルダー内にある conda 環境と仮想環境 (env) と共に、いくつかの Anaconda および CPython インストールを示しています。

注: Windows では、VS Code が利用可能な conda 環境を検出するのに少し時間がかかる場合があります。その間、環境のパスの前に "(cached)" と表示される場合があります。このラベルは、VS Code がその環境のキャッシュされた情報で現在作業していることを示します。
VS Code でフォルダーまたはワークスペースを開いていて、リストからインタープリターを選択すると、Python 拡張機能はその情報を内部に保存します。これにより、ワークスペースを再度開いたときに同じインタープリターが使用されることが保証されます。
選択された環境は、Python 拡張機能によって Python コードの実行 (Python: ターミナルで Python ファイルを実行コマンドを使用)、エディターで .py ファイルが開かれている場合の言語サービス (オートコンプリート、構文チェック、リンティング、書式設定など) の提供、およびターミナル: 新しいターミナルを作成コマンドでターミナルを開くために使用されます。後者の場合、VS Code は選択された環境を自動的にアクティブ化します。
ヒント: 選択した環境の自動アクティブ化を防ぐには、
"python.terminal.activateEnvironment": falseをsettings.jsonファイルに追加します (既存の設定の兄弟としてどこにでも配置できます)。
ヒント: アクティブ化コマンドが「Activate.ps1 はデジタル署名されていません。現在のシステムでこのスクリプトを実行できません。」というメッセージを生成する場合、スクリプトの実行を許可するために PowerShell 実行ポリシーを一時的に変更する必要があります (PowerShell ドキュメントの「実行ポリシーについて」を参照):
Set-ExecutionPolicy -ExecutionPolicy RemoteSigned -Scope Process
注: デフォルトでは、VS Code はコードのデバッグ時にワークスペース用に選択されたインタープリターを使用します。この動作は、デバッグ構成の
pythonプロパティに別のパスを指定することでオーバーライドできます。「デバッグ環境の選択」を参照してください。
選択されたインタープリターのバージョンは、ステータスバーの右側に表示されます。

ステータスバーは、インタープリターが選択されていない場合も反映します。

どちらの場合でも、ステータスバーのこの領域をクリックすると、Python: インタープリターの選択コマンドへの便利なショートカットになります。
ヒント: VS Code が仮想環境を認識する際に問題が発生した場合は、原因を特定するためにお手伝いできるよう、問題を提出してください。
インタープリターを手動で指定する
VS Code が使用したいインタープリターを自動的に見つけられない場合、ファイルシステムでインタープリターを参照するか、そのパスを手動で指定できます。
これを行うには、Python: インタープリターの選択コマンドを実行し、インタープリターリストの上部に表示されるインタープリターパスを入力...オプションを選択します。

その後、テキストボックスに Python インタープリターのフルパスを直接入力するか (例: ".venv/Scripts/python.exe")、または検索...ボタンを選択してファイルシステムを参照し、選択したい Python 実行可能ファイルを見つけることができます。

ワークスペースを最初に開いたときに使用されるデフォルトのインタープリターを手動で指定したい場合は、python.defaultInterpreterPath 設定のエントリを作成または変更できます。
注: ワークスペースのインタープリターがすでに選択されている場合、
python.defaultInterpreterPath設定への変更は反映されません。ワークスペースの初期インタープリターが選択されると、設定への変更は無視されます。
さらに、すべての Python アプリケーションのデフォルトインタープリターを設定したい場合は、ユーザー設定内に python.defaultInterpreterPath のエントリを手動で追加できます。これを行うには、コマンドパレットを開き (⇧⌘P (Windows、Linux Ctrl+Shift+P))、基本設定: ユーザー設定を開くと入力します。次に、ユーザー設定の Python 拡張機能セクションにある python.defaultInterpreterPath に適切なインタープリターを設定します。
拡張機能が環境を自動的に選択する方法
インタープリターが指定されていない場合、Python 拡張機能は次の優先順位で最も新しいバージョンのインタープリターを自動的に選択します。
- ワークスペースフォルダーの直下にある仮想環境。
- ワークスペースに関連付けられているがグローバルに保存されている仮想環境。たとえば、ワークスペースフォルダーの外にあるPipenvまたはPoetry環境。
- グローバルにインストールされているインタープリター。たとえば、
/usr/local/bin、C:\\python38などにあるもの。
注: 選択されたインタープリターは、ターミナルで
pythonが参照するものと異なる場合があります。
Visual Studio Code がインタープリターを自動的に見つけられない場合は、インタープリターを手動で指定できます。
拡張機能が環境を検索する場所
拡張機能は、次の場所でインタープリターを自動的に検索します (順序は問わない)。
/usr/local/bin、/usr/sbin、/sbin、c:\\python36などの標準的なインストールパス。- ワークスペース (プロジェクト) フォルダーの直下にある仮想環境。
python.venvPath設定で識別されるフォルダーにある仮想環境 (「一般的な Python 設定」を参照)。これには複数の仮想環境が含まれる場合があります。拡張機能は、venvPathの第 1 レベルのサブフォルダーで仮想環境を検索します。- virtualenvwrapper の
~/.virtualenvsフォルダーにある仮想環境。 - pyenv、Pipenv、およびPoetry によって作成されたインタープリター。
WORKON_HOME(仮想環境ラッパーで使用) で識別されるパスにある仮想環境。conda env listによって見つかった Conda 環境。インタープリターのない Conda 環境は、選択時にインストールされます。- ワークスペースフォルダー下のdirenvの
.direnvフォルダーにインストールされているインタープリター。
環境とターミナルウィンドウ
Python: インタープリターの選択を使用した後、そのインタープリターはファイルを右クリックしてPython: ターミナルで Python ファイルを実行を選択したときに適用されます。また、python.terminal.activateEnvironment 設定を false に変更しない限り、ターミナル: 新しいターミナルを作成コマンドを使用すると、環境は自動的にアクティブ化されます。
特定の Python 環境がアクティブ化されているシェルから VS Code を起動しても、デフォルトの統合ターミナルでその環境が自動的にアクティブ化されるわけではないことに注意してください。
注: 統合シェルとして PowerShell が設定されている場合、conda 環境を統合ターミナルで自動的にアクティブ化することはできません。シェルの変更方法については、「統合ターミナル - ターミナルプロファイル」を参照してください。
Python: インタープリターの選択コマンドでインタープリターを変更しても、すでに開いているターミナルパネルには影響しません。したがって、分割ターミナルで個別の環境をアクティブ化できます。最初のインタープリターを選択し、それ用のターミナルを作成し、別のインタープリターを選択してから、ターミナルタイトルバーの分割ボタン (⌘\ (Windows、Linux Ctrl+Shift+5)) を使用します。
デバッグ環境の選択
既定では、デバッガーは Python 拡張機能で選択された Python インタープリターを使用します。ただし、launch.json のデバッグ構成に python プロパティが指定されている場合、それが優先されます。このプロパティが定義されていない場合、ワークスペース用に選択された Python インタープリターパスを使用するようにフォールバックします。
デバッグ構成の詳細については、「デバッグ構成」を参照してください。
環境変数
環境変数定義ファイル
環境変数定義ファイルは、environment_variable=value の形式のキーと値のペアを含むテキストファイルで、コメントには # が使用されます。複数行の値はサポートされていませんが、以前に定義された環境変数への参照は許可されています。環境変数定義ファイルは、デバッグやツール実行 (リンター、フォーマッター、IntelliSense、テストツールを含む) などのシナリオで使用できますが、ターミナルには適用されません。
注: 環境変数定義ファイルは、必ずしもクロスプラットフォームであるとは限りません。たとえば、Unix は環境変数でパス区切り文字として
:を使用しますが、Windows は;を使用します。このようなオペレーティングシステムの差異の正規化は行われないため、環境定義ファイルがオペレーティングシステムと互換性のある値を使用していることを確認する必要があります。
既定では、Python 拡張機能は現在のワークスペースフォルダーで .env という名前のファイルを検索して読み込み、それらの定義を適用します。このファイルは、ユーザー設定の既定のエントリ "python.envFile": "${workspaceFolder}/.env" によって識別されます (「一般的な Python 設定」を参照)。python.envFile 設定は、いつでも変更して別の定義ファイルを使用できます。
注: 環境変数定義ファイルは、環境変数が利用可能なすべての状況で使用されるわけではありません。Visual Studio Code のドキュメントに別の記載がない限り、これらは定義どおりに特定のシナリオにのみ影響します。たとえば、設定値を解決するときに、拡張機能は環境変数定義ファイルを使用しません。
デバッグ構成には、現在のワークスペースの .env ファイルを既定値とする envFile プロパティも含まれています (「デバッグ - 構成オプションの設定」を参照)。このプロパティを使用すると、デバッグ目的で変数を簡単に設定でき、既定の .env ファイルで指定された変数を置き換えることができます。
たとえば、Web アプリケーションを開発している場合、開発サーバーと本番サーバーを簡単に切り替えたいとします。異なる URL やその他の設定をアプリケーションに直接コーディングするのではなく、それぞれに個別の定義ファイルを使用できます。たとえば、
dev.env ファイル
# dev.env - development configuration
# API endpoint
MYPROJECT_APIENDPOINT=https://my.domain.com/api/dev/
# Variables for the database
MYPROJECT_DBURL=https://my.domain.com/db/dev
MYPROJECT_DBUSER=devadmin
MYPROJECT_DBPASSWORD=!dfka**213=
prod.env ファイル
# prod.env - production configuration
# API endpoint
MYPROJECT_APIENDPOINT=https://my.domain.com/api/
# Variables for the database
MYPROJECT_DBURL=https://my.domain.com/db/
MYPROJECT_DBUSER=coreuser
MYPROJECT_DBPASSWORD=kKKfa98*11@
その後、python.envFile 設定を ${workspaceFolder}/prod.env に設定し、デバッグ構成の envFile プロパティを ${workspaceFolder}/dev.env に設定できます。
注: 環境変数を複数の方法で指定する場合、優先順位があることに注意してください。
launch.jsonファイルで定義されたすべてのenv変数は、python.envFile設定 (ユーザーまたはワークスペース) で指定された.envファイルに含まれる変数をオーバーライドします。同様に、launch.jsonファイルで定義されたenv変数は、launch.jsonで指定されたenvFileで定義された環境変数をオーバーライドします。
PYTHONPATH 変数の使用
PYTHONPATH 環境変数は、Python インタープリターがモジュールを検索する追加の場所を指定します。VS Code では、PYTHONPATH はターミナル設定 (terminal.integrated.env.*) および/または .env ファイル内で設定できます。
ターミナル設定を使用すると、PYTHONPATH は、ユーザーがターミナル内で実行するツール、およびデバッグなど、ターミナルを介してルーティングされるユーザーのために拡張機能が実行するアクションに影響します。ただし、この場合、拡張機能がリンターやフォーマッターの使用など、ターミナルを介してルーティングされないアクションを実行する場合、この設定はモジュールの検索に影響しません。
次のステップ
- コードの編集 - Pythonのオートコンプリート、IntelliSense、書式設定、リファクタリングについて学びます。
- デバッグ - Pythonをローカルおよびリモートでデバッグする方法を学びます。
- テスト - テスト環境を構成し、テストを発見、実行、デバッグします。
- 設定リファレンス - VS CodeのPython関連設定の全範囲を探索します。
その他の Python リソース
- VS Code での Python の使用開始 - VS Code でコードを編集、実行、デバッグする方法を学びます。
- 仮想環境とパッケージ (Python.org) - 仮想環境とパッケージについて詳しく学びます。
- Python モジュールのインストール (Python.org) - Python モジュールのインストール方法を学びます。
- Python チュートリアル (Python.org) - Python 言語について詳しく学びます。