VS Code拡張機能「Python Environments」正式版を触って分かった機能とUIの全体像:Deep Insider Brief ― 技術の“今”にひと言コメント
Pythonでは仮想環境や依存するパッケージを管理する方法はさまざまだ。各種ツールと連携して、環境管理に統一的なUIをもたらす拡張機能の一般提供がついに開始された。
Microsoftは2026年2月18日、Visual Studio Code(以下、VS Code)向けの拡張機能「Python Environments Extension for VS Code」を一般提供(GA)として展開することを発表した(以下、Environments拡張機能と表記する)。Environments拡張機能はPythonの実行環境を管理するための統合的な操作環境を提供するもの。1年以上のプレビュー期間を経て、一般提供が開始された。
Pythonでは、プロジェクトの実行環境(Pythonのバージョン、依存するパッケージやライブラリ)を管理するためにvenvやconda、pyenvなどさまざまなツールが使われてきた。それらのツールの使い方はそれぞれに異なるため、Pythonでの開発は実行環境の管理に何を使うかによって違いが生じていた。Environments拡張機能はこうしたツールと連携して、実行環境の一覧や作成、パッケージのインストールなど、実行環境を管理するための統一的なインタフェースを与えるものだ。
どうも。HPかわさきです。
Environments拡張機能については『VS Codeで「Python仮想環境」を視覚的に管理する、新しい拡張機能「Python Environments」の現状と可能性』でも取り上げました。今回はいよいよ一般提供が始まったということで、もう一度、これについて簡単にまとめます。気になる方は前掲の記事もぜひお読みください。
また、通常のDeep Insider Briefとは少々異なる体裁の記事になっていますが、ご容赦ください。単にブログ(リリース)をまとめるよりは、触って画面をキャプチャーして、機能をとりまとめた方がよさそうだったので、そうした構成になっています。
サポートするツールと[Python]サイドバー
Environments拡張機能がサポートしているのは以下だ。
- venv
- conda
- pyenv
- poetry
- pipenv
- システムにインストールされているPython
Environments拡張機能はこれらのツールで作成された実行環境を自動的に発見して、それらを[Python]サイドバーの[Environment Managers]ビューに表示する。
上の画像では、グローバルに(macOSにシステムワイドで)インストールされているPythonのバージョンと、ワークスペース(プロジェクト)に存在する2つの仮想環境が表示されている。ここでは、実行環境の新規作成や削除、パッケージの管理、ターミナルの起動、プロジェクトへの実行環境の割り当てなどが可能だ(後述)。簡単にいえば、実行環境という視点で現在開いているワークスペースやプロジェクトを表現したものになる。
Environments拡張機能は[Python]サイドバーに[Python Project]というビューも表示される。以下にその例を示す(実際には[Python Projects]ビューがサイドバーの上部に、[Environment Managers]ビューが下部に表示される)。
[Environment Managers]ビューに対して、こちらはプロジェクトの視点で実行環境を表現したものだ。上の画像では2つのプロジェクトがあり(マルチルートワークスペース)、それぞれに仮想環境が構築されて、割り当てが行われていることが分かる。このビューではプロジェクトの追加や新規作成、プロジェクトへの実行環境の割り当て、ターミナルの起動などが行える。
Environments拡張機能ではこれら2つのビューを使って、以下のようなことが行える。
- 実行環境の作成
- ワークスペースやプロジェクトにある実行環境の発見
- 実行環境の削除
- 実行環境のパッケージ管理
- ターミナルの起動
- プロジェクトへの実行環境の割り当て
- プロジェクトの新規作成や追加
ただし、実行環境の作成をVS CodeのUIから行えるのはvenvとcondaを使う場合のみとなる。他のツールでは、コマンドラインからそれらのツールを使って作った実行環境の発見や管理が行える。
また、uvがインストールされている場合、venvで実行環境を作成して、依存するパッケージをインストールする際には自動的にuvが使われる。これは大規模なプロジェクトの実行環境を構築する際には、速度の面で大きなメリットがある。
そのようにリリース内容にはあるのですが、筆者の手元で仮想環境を作っても、自動的にuvが使われることはなかったですねぇ。もしかして、一般提供されるバージョンの展開がまだ筆者のところまで届いていないのかもしれません。
幾つかの機能を以下では簡単に紹介する。
[Environment Managers]ビューでできること
[Environment Managers]ビューでは、ビュー右上にある[+]ボタンをクリックすることで、実行環境(仮想環境)を新規に作成できる。作成には大きく次の2つの方法がある(複数のプロジェクトを含むワークスペースでは、どのプロジェクト用の環境を作ろうとしているかの問い合わせも行われる)。
- 簡易作成:デフォルトの実行環境管理ツール、最新版のPython、requirements.txtやpyproject.tomlに記述された依存関係から実行環境を構築する
- カスタム作成:コマンドパレット部分で対話的に実行環境を構築し、必要なら依存パッケージのインストールなども行う
簡易作成はホントに最新バージョンのPythonを使うようです。普段使いのバージョンよりも新しいバージョンをインストールしている人はご注意。筆者はお試しでPython 3.15をインストールしているので、簡易作成はちょっと使えない(笑)。また、python.defaultInterpreterPathでデフォルトのPythonを指定しても、そこは見てくれないようです。
それから簡易作成の説明にある「デフォルトの実行環境管理ツール」はpython-envs.defaultEnvManagerで指定されるようです。筆者はvenvを普段使っているので"ms-python.python:venv"が設定されていました。
この他、このビューには以下のようなボタンがあり、それらをクリックすることでGUIベースで各種操作が行える。
これらの機能のうち、ターミナルの起動についてはEnvironments拡張機能でpython-envs.terminal.autoActivationTypeという設定が追加された(python.terminal.activateEnvironmentよりもこちらが優先される)。そして、ここではシェルの起動後に最初のコマンドが実行される前から、実行環境が有効化される「shellStartup」が指定できるようになった。GitHub Copilotとの対話の中でシェルが起動されるような場合、コマンドが実行される前から実行環境が有効になっている必要があることもある。そうした場合に、この設定が意味を持つ。
現在はターミナル起動後にコマンドで実行環境を有効化する[command]がデフォルトの設定だが、将来的には[shellStartup]がデフォルトになる予定だ。
[Python Projects]ビューでできること
[Python Projects]ビューには以下のようなボタンがある。
一番上のプロジェクトの追加では、以下の3種類の方法で現在のワークスペースにプロジェクトを追加できる。
- [Auto Find]:プロジェクトを自動検索する
- [Select Existing]:既存のPythonプロジェクトを指定して追加する
- [Create New]:テンプレートを基に新規にプロジェクトを追加する
[Create New]を選ぶと、さらにパッケージを作るのか、スクリプトを作るのかや、そのプロジェクトの名前などが問い合わせられ、その後、プロジェクトが新規に作成される。定型コードを書かずに、プロジェクトを新規に作成する際には役立つかもしれない。
エージェントにお任せするのとどっちがいいかというと難しいところかもしれませんね。とはいえ、こうした機能がないのもヘンといえばヘンか。
プロジェクトパスのコピー、ターミナルの起動については予想が付くだろう(その通りだ)。プロジェクト環境の設定では、そのプロジェクトの実行環境を指定する。
ここでは紹介しないが、この他にも.envファイルのサポート(.envファイルに記述した設定が環境変数として実行環境に注入される)、複数プロジェクトでのテスト対応、サードパーティーがEnvironments拡張機能をサポートできるようにするためのAPIの用意など、多くの機能が搭載されている。
1年ものプレビュー期間を終えて、いよいよ一般提供が始まったEnvironments拡張機能。そのメリットが多くの開発者に伝わって、広く使われるようになるかどうか。これからに期待したいところだ。
どうなんですかね。広く使われるようになるんですかね。ちょっとまだ分からないなぁって、個人的には感じています。前回の記事では「プロジェクトを実行環境という面から捉えるためのツール」と書きましたが、それだけではなく「ツールによってバラバラな操作感を統一するインタフェース」として機能するというのは大きなメリットだなと思いました。そこのところがうまく伝われば、将来は明るいのかもしれません。
Copyright© Digital Advantage Corp. All Rights Reserved.

![[Environment Managers]ビュー](https://image.itmedia.co.jp/ait/articles/2602/25/di-pyn01502.gif)
![[Python Project]ビュー](https://image.itmedia.co.jp/ait/articles/2602/25/di-pyn01504.gif)
![[Environment Managers]ビューでできること](https://image.itmedia.co.jp/ait/articles/2602/25/di-pyn01505.gif)

![[Python Projects]ビューでできること](https://image.itmedia.co.jp/ait/articles/2602/25/di-pyn01507.gif)