PythonのプロジェクトをVS Code(Visual Studio Code)で開発しているとき、「仮想環境(venv)を作ったのにVS Codeが勝手にシステムのPythonを使ってしまう…」
そんな経験はありませんか?
venvはプロジェクトごとに依存ライブラリを切り分ける大切な仕組みですが、VS Codeにしっかり自動認識させておかないと、思わぬトラブルを招きます。
この記事では、VS Codeでvenvを自動的に認識・切り替える設定方法から、うまく切り替わらないときの対処法までくわしく解説します。
仮想環境とは?なぜ必要なの?

仮想環境の基本概念
仮想環境(Virtual Environment)とは プロジェクトごとに独立したPythonの実行環境を作る仕組みです。まるで「プロジェクト専用の部屋」のようなもので、必要なライブラリだけを置いておけます。
なぜ仮想環境が必要なの?
ライブラリの競合を防ぐ
問題例
- プロジェクトAではDjango 3.2が必要
- プロジェクトBではDjango 4.1が必要
- 同じパソコンに両方インストールすると競合する
仮想環境の解決策
- プロジェクトAには専用の環境を作ってDjango 3.2をインストール
- プロジェクトBには別の環境を作ってDjango 4.1をインストール
- お互いに影響しない
依存関係の管理がしやすい
メリット
- プロジェクトに必要なライブラリだけをインストール
- requirements.txtで環境の再現ができる
- 他の開発者との環境共有が簡単
venvとは
venvの特徴
- Pythonに標準で入っている仮想環境ツール
- 軽量で使いやすい
- 他のツール(conda、pipenv等)もありますが、まずはvenvから始めるのがおすすめ
VS Codeはvenvをどう探している?
VS Codeの仕組み
VS CodeはPython拡張機能(ms-python.python)を入れることで、プロジェクト内の仮想環境(venv)を自動的に検出します。
自動検出の順序
VS Codeが仮想環境を探す順序はおおむね次のとおりです:
.vscode/settings.json
に指定されたPythonパスvenv
や.venv
フォルダ(プロジェクト直下)env
や.env
フォルダ- conda環境(Anacondaを使用している場合)
- システムのPython(グローバル環境)
なぜ自動認識が重要なの?
手動選択の問題点
- プロジェクトを開くたびに毎回設定が必要
- 間違った環境を選んでしまうリスク
- チーム開発で環境の統一が難しい
自動認識のメリット
- プロジェクトを開けば自動的に適切な環境を使用
- 作業効率の向上
- ミスの防止
フォルダ名による認識
推奨されるフォルダ名
VS Codeが自動認識しやすいフォルダ名:
.venv
(最も推奨)venv
.env
env
なぜ .venv
が推奨なの?
理由
- ドット(.)で始まるフォルダは隠しフォルダ扱い
- ファイルエクスプローラーで邪魔にならない
- VS Codeが最優先で探す名前
- Python開発者の間で標準的
venvをVS Codeに自動で認識させる方法
事前準備
Python拡張機能のインストール
- VS Codeを開く
- 左側の拡張機能アイコン(四角が4つ並んだマーク)をクリック
- 「Python」で検索
- 「Python」(Microsoft製)をインストール
Pythonのバージョン確認
ターミナルで以下のコマンドを実行:
python --version
Python 3.3以降であればvenvが使用できます。
プロジェクト直下にvenvを作る
基本的な作成手順
ステップ1:プロジェクトフォルダに移動
cd your-project-folder
ステップ2:仮想環境を作成
python -m venv .venv
OS別の作成方法
Windows(PowerShell)
python -m venv .venv
Windows(コマンドプロンプト)
python -m venv .venv
macOS/Linux
python3 -m venv .venv
名前を .venv
にする理由
VS Codeでの優先度
.venv
は最優先で探される- 他の名前だと認識されない場合がある
- チーム開発での統一が図れる
仮想環境の有効化
作成後の有効化
仮想環境を作った後は、一度有効化してライブラリをインストールします。
Windows
.venv\Scripts\Activate.ps1
macOS/Linux
source .venv/bin/activate
有効化の確認方法
ターミナルの表示 有効化されると、ターミナルの先頭に (.venv)
と表示されます:
(.venv) PS C:\your-project>
Pythonパスの確認
which python # macOS/Linux
where python # Windows
VS Codeでの確認と設定
VS Codeを再起動する
VS Codeは新しく作った仮想環境をすぐには認識しない場合があります。一度VS Codeを閉じて、再度プロジェクトフォルダを開くと自動的に仮想環境を選んでくれます。
ステータスバーで確認
確認場所 VS Codeの左下(青いステータスバー)にPythonのバージョンが表示されます。
正しい表示例
Python 3.9.7 ('.venv': venv) ./.venv/bin/python
間違った表示例
Python 3.9.7 64-bit
手動での環境選択
選択手順
- ステータスバーのPythonバージョンをクリック
- 上部にインタープリターの一覧が表示される
.venv
内のPythonを選択
選択肢の例
./venv/bin/python (推奨)
Python 3.9.7 ('/usr/bin/python3')
Python 3.8.10 ('/usr/bin/python3.8')
自動で切り替わらないときの対処法
settings.jsonで明示的に指定する
ワークスペース設定の作成
ファイルの場所 プロジェクトフォルダ内に .vscode/settings.json
を作成
ディレクトリ構造
your-project/
├── .venv/
├── .vscode/
│ └── settings.json
└── main.py
Windows環境の設定
.vscode/settings.json
{
"python.defaultInterpreterPath": "${workspaceFolder}\\.venv\\Scripts\\python.exe"
}
macOS/Linux環境の設定
.vscode/settings.json
{
"python.defaultInterpreterPath": "${workspaceFolder}/.venv/bin/python"
}
ワークスペース変数の活用
${workspaceFolder}
の便利さ
- プロジェクトフォルダの絶対パスを自動取得
- プロジェクトを別の場所に移動しても動作する
- チーム開発で異なるパス環境でも対応
python.venvPathの活用
複数プロジェクトでの環境管理
複数のプロジェクトが共通の場所にvenvを置いている場合の設定:
設定例
{
"python.venvPath": "C:/Users/yourname/venvs",
"python.venvFolders": [
"envs",
".pyenv",
".direnv"
]
}
仮想環境の配置パターン
パターン1:プロジェクト内
project/
└── .venv/
パターン2:共通ディレクトリ
C:/venvs/
├── project1-env/
├── project2-env/
└── project3-env/
詳細な診断方法
Python拡張機能のログ確認
ログの表示方法
- VS Codeでコマンドパレット(Ctrl+Shift+P)を開く
- 「Python: Show Output」を選択
- 拡張機能がどの環境を検出しているか確認
ログの読み方
[INFO] Python interpreter path: ./.venv/bin/python
[INFO] Environment type: venv
[INFO] Environment location: /path/to/project/.venv
インタープリターの再読み込み
手順
- コマンドパレット(Ctrl+Shift+P)
- 「Python: Refresh」を実行
- 環境の再検出を強制実行
高度な設定とカスタマイズ

複数環境の管理
プロジェクト別の環境切り替え
マルチルートワークスペース
{
"folders": [
{ "path": "./frontend" },
{ "path": "./backend" }
],
"settings": {
"python.defaultInterpreterPath": "./backend/.venv/bin/python"
}
}
開発・テスト・本番環境の使い分け
設定例
{
"python.defaultInterpreterPath": "${workspaceFolder}/.venv-dev/bin/python",
"python.testing.pytestPath": "${workspaceFolder}/.venv-test/bin/pytest"
}
ターミナルの自動有効化
統合ターミナルでの自動有効化
設定方法
{
"python.terminal.activateEnvironment": true,
"python.terminal.activateEnvInCurrentTerminal": true
}
シェル別の設定
PowerShell
{
"terminal.integrated.defaultProfile.windows": "PowerShell",
"terminal.integrated.profiles.windows": {
"PowerShell": {
"source": "PowerShell",
"args": ["-ExecutionPolicy", "Bypass"]
}
}
}
拡張機能との連携
Python Docstring Generator
自動認識の確認
{
"autoDocstring.docstringFormat": "google",
"python.defaultInterpreterPath": "${workspaceFolder}/.venv/bin/python"
}
Code Runner
仮想環境での実行
{
"code-runner.executorMap": {
"python": "${workspaceFolder}/.venv/bin/python"
}
}
トラブルシューティング
よくある問題と解決法
問題1:仮想環境が表示されない
原因
- Python拡張機能がインストールされていない
- VS Codeが古いバージョン
- 仮想環境の作成に失敗している
解決法
- Python拡張機能を最新版に更新
- VS Codeを最新版に更新
- 仮想環境を再作成
問題2:権限エラーが発生する
Windows PowerShellでの実行ポリシーエラー
Set-ExecutionPolicy -ExecutionPolicy RemoteSigned -Scope CurrentUser
macOS/Linuxでの権限問題
chmod +x .venv/bin/activate
問題3:パッケージが見つからない
原因
- 間違った環境でパッケージをインストール
- 環境の切り替えが正しくできていない
確認方法
pip list
which pip
解決法
# 正しい環境でのインストール
.venv/bin/pip install package-name
デバッグ方法
環境変数の確認
重要な環境変数
echo $VIRTUAL_ENV # 仮想環境のパス
echo $PATH # Pythonの検索パス
echo $PYTHONPATH # Pythonモジュールの検索パス
VS Code設定の診断
設定の優先順序
- ワークスペース設定(.vscode/settings.json)
- ユーザー設定
- デフォルト設定
設定の確認方法
- コマンドパレット → 「Preferences: Open Settings (JSON)」
- Python関連の設定を確認
ベストプラクティス

プロジェクト構成の推奨パターン
標準的な構成
my-python-project/
├── .venv/ # 仮想環境
├── .vscode/
│ └── settings.json # VS Code設定
├── src/ # ソースコード
├── tests/ # テストコード
├── requirements.txt # 依存パッケージ
├── README.md
└── .gitignore
.gitignoreの設定
仮想環境の除外
# Virtual Environment
.venv/
venv/
env/
.env/
# VS Code
.vscode/settings.json
チーム開発での統一
共通設定ファイル
.vscode/settings.json(チーム共有用)
{
"python.defaultInterpreterPath": "${workspaceFolder}/.venv/bin/python",
"python.linting.enabled": true,
"python.linting.pylintEnabled": true,
"python.formatting.provider": "black",
"python.terminal.activateEnvironment": true
}
requirements.txtの活用
環境の再現手順
# 仮想環境作成
python -m venv .venv
# 有効化
source .venv/bin/activate # macOS/Linux
.venv\Scripts\Activate.ps1 # Windows
# パッケージインストール
pip install -r requirements.txt
定期メンテナンス
パッケージの更新
現在のパッケージ確認
pip list --outdated
一括更新(要注意)
pip list --outdated --format=freeze | grep -v '^\-e' | cut -d = -f 1 | xargs -n1 pip install -U
不要な環境の削除
仮想環境の削除
rm -rf .venv # macOS/Linux
rmdir /s .venv # Windows
まとめ
VS Codeでvenvを自動認識させるためのポイントをまとめると:
基本設定
- プロジェクト直下に
.venv
という名前で仮想環境を作成 - Python拡張機能を最新版にする
- VS Codeの再起動で自動認識を促す
確実な設定
.vscode/settings.json
でpython.defaultInterpreterPath
を指定- ワークスペース変数
${workspaceFolder}
を活用 - チーム開発では共通設定を作成
トラブル対応
- ステータスバーで現在の環境を確認
- ログを確認して問題を特定
- 段階的にトラブルシューティング
ベストプラクティス
- 統一されたプロジェクト構成
- 適切な.gitignore設定
- 定期的なメンテナンス
コメント