VSCodeでPython仮想環境(venv)を自動アクティベートする方法



Python開発において、仮想環境(venv)の利用はプロジェクトごとに異なるライブラリの依存関係を管理するために不可欠です。しかし、いざ開発を始めようとすると、ターミナルを開いてsourceコマンド(Windowsの場合は.\Scripts\activateなど)を実行し、毎回手動で仮想環境をアクティベートする作業は、意外と手間だと感じる方も多いでしょう。

多くのPython開発者に愛用されている統合開発環境(IDE)であるVisual Studio Code(VSCode)を使えば、かなり手軽にアクティベート(有効化)することができます。
VSCodeに備わっている便利な機能と簡単な設定を活用することで、ターミナルを起動するたびに自動的に適切な仮想環境がアクティベートされるようになり、開発ワークフローをよりスムーズかつ効率的に進めることができます。

ここでは、VSCodeでPython仮想環境を自動アクティベートする方法についてご紹介します。

インタープリターの選択


VSCodeでは、仮想環境(venv)のパスが設定されたインタープリターを選択することで、自動でアクティベート(有効化)することができます。

例として、以下のようなディレクトリ構造があるとします。
「python_dev」のフォルダに仮想環境を構築しています。サブディレクトリは各プロジェクトとして管理しています。

まずは、作業したいPythonプロジェクトのフォルダをVSCodeで開きます。

作業するPythonプロジェクトのフォルダをVSCodeで開く



プロジェクトのフォルダを開きましたら、Ctrl+Shift+P (Windows/Linux) または Cmd+Shift+P (macOS) を押して、コマンドパレットを開きます。
コマンドパレットに「Python: Select Interpreter」と入力し、表示される候補から選択します。

VSCodeが自動的にプロジェクト内の仮想環境(./venv や ./.venv など)を検出して候補に表示します。目的の仮想環境を選択します。もし表示されない場合は、「インタープリターのパスを入力」を選択し、手動で仮想環境内の python.exe (Windows) または python3 (macOS/Linux) のパスを指定します。

仮想環境のインタープリターを選択する



インタープリターを選択すると、VSCodeで新しくターミナルを開いた際に、自動的にその仮想環境がアクティベートされた状態で開かれます。ターミナルのプロンプトに仮想環境の名前(例: (.venv))が表示されるのが確認できます。

VSCodeでターミナルを起動時の仮想環境(venv)の自動アクティベート



また、画面右下の表示からも、仮想環境のパスが設定されたインタープリターが選択されているのが確認できます。

アクティベートがうまくいかない場合


WindowsのPowerShellなど、シェルによってはデフォルトで仮想環境名がカッコで囲まれない場合があります。たとえば、(.venv) のように表示される代わりに、単に .venv とだけ表示されたり、何も表示されないケースもあるようです。これではうまく仮想環境を有効化できていない状態となります。

このような場合は、settings.json(ユーザー設定またはワークスペース設定)に設定を追加することで、自動アクティベートが適用できるようになります。

コマンドパレット(Ctrl+Shift+P または Cmd+Shift+P)を開き、「Preferences: Open User Settings (JSON)」または「Preferences: Open Workspace Settings (JSON)」を選択します。
Python開発において、プロジェクトごとに使用するライブラリやそのバージョンが異なることはよくあります。ワークスペース設定で仮想環境のパスを設定することで、プロジェクトごとに異なる仮想環境をVS Codeに認識させ、自動でアクティベートすることができるので、「Preferences: Open Workspace Settings (JSON)」の方を選択して、ワークスペース(ディレクトリ)のsettings.jsonに設定を追加することをお勧めします。

以下の行をsettings.jsonに追加します。

"python.experiments.optOutFrom": ["pythonTerminalEnvVarActivation"]
settings.jsonに自動アクティベートを適用する設定を追加



ワークスペース設定のsettings.jsonの作成や編集を行うと、VSCodeのディレクトリ表示に .vscode のディレクトリが表示され、settings.jsonが管理されているのが確認できます。

この設定を追加した後、VSCodeを再起動し、新しいターミナルを開いてください。


サブディレクトリの仮想環境にも適用する場合


もし、仮想環境のサブディレクトリに別のプロジェクトとして仮想環境を構築している場合、親ディレクトリのワークスペース設定で自動アクティベートの設定を追加しても、サブディレクトリのプロジェクトのフォルダをVSCodeで開いてターミナルを起動しても、うまく自動アクティベートされません。
サブディレクトリごとでワークスペース設定をする必要があります。

対象のディレクトリをVSCodeで開いて、先ほどと同じ流れでワークスペースのsettings.jsonを編集してください。

サブディレクトリの仮想環境のsettings.jsonに自動アクティベートを適用する設定を追加



仮想環境でプロジェクトを進めていくうえでは、サブディレクトリであっても、プロジェクトのディレクトリに対して、仮想環境の構築はもちろん、設定ファイルもワークスペース(ディレクトリ)ごとに設定をしていきましょう。

最後に


Python開発での仮想環境(venv)のアクティベートの作業を、VSCodeの設定で自動化する方法について詳しく解説しました。

VSCodeの便利な機能を活用することで、開発環境のセットアップにかかる時間を最小限に抑え、本来のプログラミング作業に集中できるようになります。sourceコマンドを実行する手間から解放され、よりスムーズで効率的なPython開発ワークフローを実現できるでしょう。

今回ご紹介した方法を試して、ぜひ快適なPython開発ライフをお送りください。