VS CodeがPythonのvenv(仮想環境)を認識しないときの対処法|設定から選択まで徹底解説

python

「VS CodeでPythonプロジェクトを開いたのに、作ったvenv(仮想環境)を認識してくれない」
「いつの間にかグローバルのPythonで実行されてしまった」こんな経験はありませんか?

VS Codeは非常に便利ですが、venvを正しく認識させるためには少しコツ がいります。

この記事では、VS CodeでPythonのvenvをきちんと認識・利用させる方法を初心者にもわかりやすく解説します。

スポンサーリンク

VS Codeでvenvが認識されないよくある原因

venvを作成した場所が違う

VS Codeは、デフォルトで プロジェクトのルートディレクトリ以下 にある venv.venv を自動で検出します。

認識されやすいフォルダ構成例

project/
├─ app.py
├─ requirements.txt
├─ venv/
│  ├─ Scripts/(Windows)または bin/(macOS/Linux)
│  ├─ Lib/
│  └─ ...

このように同じフォルダ内に venv があれば認識しやすいです。

認識されにくいパターン

# NG例:プロジェクトの外にvenvがある
C:/
├─ Users/username/venvs/myproject/
└─ Projects/myproject/
   └─ app.py

VS CodeのPython拡張が入っていない

Python用のVS Code拡張(ms-python.python)が入っていないと仮想環境を検出できません。

Python拡張のインストール手順

  1. 左側の拡張アイコン(四角いマーク)をクリック
  2. 検索欄で「Python」を検索
  3. Microsoft製の「Python」拡張をインストール
  4. VS Codeを再起動

パスに日本語や特殊文字が含まれている

フォルダ名やパスに日本語が含まれていると、venvが正常に動作しない場合があります。

# 避けた方がよいパス例
C:/プロジェクト/マイアプリ/venv/

# 推奨パス例
C:/projects/myapp/venv/

venvをVS Codeで認識させる基本手順

ターミナルでvenvを作成

VS Codeのターミナルを開き(Ctrl + Shift + ö または Ctrl + Shift + @)、以下を実行します。

python -m venv venv

venvの名前を変える場合

# .venvという名前で作成(隠しフォルダ)
python -m venv .venv

# プロジェクト名を含めた名前
python -m venv myproject-env

仮想環境を有効化

Windows(PowerShell/Command Prompt)

# PowerShell
venv\Scripts\Activate.ps1

# Command Prompt
venv\Scripts\activate.bat

macOS/Linux

source venv/bin/activate

有効化されたかの確認方法

ターミナルのプロンプトに (venv) が表示されれば成功です:

(venv) PS C:\projects\myapp>

VS Codeの右下からインタプリタを選択

VS Codeの画面右下に表示されるPythonバージョン情報をクリックします。

Python 3.x.x 64-bit ('venv': venv)

のような表示が出ていればクリックし、仮想環境を選びます。

もし表示されないときの対処法

  1. Ctrl + Shift + P(コマンドパレット)を開く
  2. 「Python: Select Interpreter」と入力
  3. 出てきた選択肢から適切なvenvを選択

手動でvenvのパスを指定

コマンドパレットで「Python: Select Interpreter」を選択後、「Enter interpreter path…」をクリックし、以下のパスを直接入力:

# Windows
./venv/Scripts/python.exe

# macOS/Linux
./venv/bin/python

settings.jsonで強制的に指定する方法

プロジェクト固有の設定

VS Codeがどうしても自動認識しない場合は、プロジェクトフォルダ内に .vscode/settings.json を作成し、以下を設定します。

Windows向け設定

{
  "python.defaultInterpreterPath": "${workspaceFolder}/venv/Scripts/python.exe",
  "python.terminal.activateEnvironment": true
}

macOS/Linux向け設定

{
  "python.defaultInterpreterPath": "${workspaceFolder}/venv/bin/python",
  "python.terminal.activateEnvironment": true
}

グローバル設定(全プロジェクト共通)

VS Codeの設定画面(Ctrl + ,)で「python.defaultInterpreterPath」を検索し、デフォルトのPythonパスを設定できます。

{
  "python.defaultInterpreterPath": "python",
  "python.venvPath": "~/venvs"
}

venv認識の確認方法

ターミナルでの確認

# Pythonのパスを確認
where python
# または
which python

# pipのパスを確認
where pip
# または  
which pip

仮想環境が正しく有効化されていれば、venvフォルダ内のPythonとpipが表示されます。

VS Code内での確認方法

インタプリタ情報の確認

  1. Ctrl + Shift + P でコマンドパレットを開く
  2. 「Python: Show Interpreter Path」を実行
  3. 現在使用中のPythonパスが表示される

実行中のPythonパスを確認

新しいPythonファイルを作成し、以下のコードを実行:

import sys
print(sys.executable)
print(sys.path)

venvのパスが表示されれば正常に認識されています。

よくあるトラブルと解決方法

PowerShellでスクリプト実行が禁止されている

Windowsで以下のエラーが出る場合:

実行ポリシーの変更
実行ポリシーは、信頼されていないスクリプトからの保護に役立ちます。

解決方法

管理者権限でPowerShellを開き、以下を実行:

Set-ExecutionPolicy -ExecutionPolicy RemoteSigned -Scope CurrentUser

VS Codeでターミナルを開いても仮想環境が有効化されない

.vscode/settings.json に以下を追加:

{
  "python.terminal.activateEnvironment": true,
  "python.terminal.activateEnvInCurrentTerminal": true
}

複数のPythonバージョンがインストールされている

特定のPythonバージョンでvenvを作成

# Python 3.9で仮想環境を作成
py -3.9 -m venv venv

# または直接パスを指定
C:\Python39\python.exe -m venv venv

venvが古くなってしまった

venvの再作成手順

# 既存のvenvを削除
rmdir /s venv  # Windows
rm -rf venv    # macOS/Linux

# 新しいvenvを作成
python -m venv venv

# 有効化
venv\Scripts\activate  # Windows
source venv/bin/activate  # macOS/Linux

# パッケージの再インストール
pip install -r requirements.txt

より便利な使い方

requirements.txtからの自動セットアップ

# venv作成から必要なパッケージインストールまで一括
python -m venv venv
venv\Scripts\activate  # Windows
pip install --upgrade pip
pip install -r requirements.txt

複数の仮想環境を管理

プロジェクトごとに異なる環境が必要な場合:

# 開発環境
python -m venv venv-dev
pip install -r requirements-dev.txt

# 本番環境
python -m venv venv-prod  
pip install -r requirements.txt

.vscode/settings.json でプロファイルを切り替え:

{
  "python.defaultInterpreterPath": "${workspaceFolder}/venv-dev/Scripts/python.exe"
}

VS Code拡張の活用

Python Environment Manager

複数の仮想環境を簡単に切り替えられる拡張機能です。

autoDocstring

仮想環境内のパッケージに対応したドキュメント生成ができます。

よくある質問

Q: condaとvenvはどちらを使えばいいですか?

A: 用途によって使い分けます:

  • venv: Pythonの標準機能、軽量、シンプル
  • conda: データサイエンス向け、パッケージ管理が強力

VS Codeはどちらにも対応していますが、初心者にはvenvがおすすめです。

Q: GitHubにvenvフォルダをプッシュしてもいいですか?

A: .gitignore にvenvを追加して、リポジトリには含めないのが一般的です:

venv/
.venv/
__pycache__/
*.pyc

代わりに requirements.txt でパッケージ情報を共有します。

Q: 仮想環境の名前を変更するには?

A: venvは名前変更に対応していないため、新しい名前で作り直すのが確実です:

# 既存の環境からrequirements.txtを生成
pip freeze > requirements.txt

# 新しい名前で環境を作成
python -m venv new-venv-name
new-venv-name\Scripts\activate
pip install -r requirements.txt

まとめ

VS Codeでvenvを確実に認識させるためのポイント:

  • プロジェクト直下に venv を作成する
  • Python拡張をインストールし、適切な設定をする
  • VS Codeの右下 or コマンドパレットでPythonインタプリタを選択
  • 必要なら .vscode/settings.json で明示的に指定
  • ターミナルでの確認を習慣化する

コメント

タイトルとURLをコピーしました