てくなべ (tekunabe)

ansible / network automation / 学習メモ

[VS Code] デフォルトで読み込む venv/virtualenv 環境のパス

■ はじめに

VisualStudio Code (以下、VS Code)は Python の仮想環境 venv/vitualenv にも対応しています。特に設定で指定しなくても特定のディレクトリ配下の仮想環境を読み込みます。この記事ではそのパスの確認をします。

環境


デフォルトで読み込まれるパス

以下の 4 箇所です。

参考

デフォルト設定

 // Folders in your home directory to look into for virtual environments.
  "python.venvFolders": [
    "envs",
    ".pyenv",
    ".direnv"
  ]

Where the extension looks for environments

Virtual environments located directly under the workspace (project) folder.

お試し

実際に読み込まれることを試してみます。

仮想環境の作成

まず、対応する 4つの仮想環境をを作ります。

$ python3 -m venv ~/envs/envs01
$ python3 -m venv ~/.pyenv/pyenv01
$ python3 -m venv ~/.direnv/direnv01
$ python3 -m venv .venv               # ワークスペースディレクトリ上

確認

VS Codeワークスペースディレクトリ( .env を含むディレクトリ)を開きます。

次に、⌘ command + ⇧ shift + P コマンドパレットを開き、Python: インタープリターを選択 を選択します。

f:id:akira6592:20181228221702p:plain:w450
コマンドパレット

以下のように、4 つの環境が認識されてていることが確認できます。

f:id:akira6592:20181228221725p:plain:w450
インタープリターの選択
ここでは、代表して envs01 を選択します。

左下の 使用インタプリターの表示で envs01 が選択されていることが確認できます。

f:id:akira6592:20181228222248p:plain
仮想環境 envs01 が適用状態

この状態で統合ターミナルを起動すると、自動で該当の activate コマンドが実行され、仮想環境に入った状態になります。

f:id:akira6592:20181228222449p:plain
自動で activate される

デバッグ時もこの仮想環境で実行されます。


まとめ

VS Code がデフォルトで読み込む Python の仮想環境のパスを確認しました。 もちろん setting.jsonpython.venvPath で明示的に指定しても良いですが、なるべく設定を変更したくない場合は、デフォルトで読み込まれるパスを活用すると良いと思います。