VSCode で Python インタプリタが認識されない
Python 拡張機能 ms-python.python はワークスペースごとの選択を保持するため、未選択だとステータスバーに Select Interpreter と表示され実行できない。
コマンドパレットの Python: Select Interpreter で明示選択し、settings.json にパスを書く。
要約
VSCode のステータスバーに Select Interpreter と出る、もしくは実行ボタンが反応しないときは、Python 拡張機能がワークスペースに紐づくインタプリタを把握できていない 状態。
コマンドパレットの 「Python: Select Interpreter」 で明示的にインタプリタを選び、必要なら .vscode/settings.json にパスを残す。
よくある原因
- 拡張機能が無い・無効:
ms-python.pythonを入れ忘れている、または別プロファイルで無効化されている。 - 未選択の状態: 初回起動時に Select Interpreter を一度もやっていないと、venv やシステム Python が拾われない。
- インタプリタのパスが消えた: 一度選んだ
python.exe/.venv/bin/pythonを削除・再生成したまま、設定が古いパスを指している。 - Remote / WSL の文脈差: Local 側の VSCode ではインタプリタが見えるが、Remote-SSH / WSL で開いたウィンドウは別物として扱われる。
解決策
1. 拡張機能を最新版に揃える
Ctrl+Shift+X の拡張機能ビューで Python (ms-python.python) を検索しインストール。
すでに入っていたら一度無効化 → 有効化で再読み込みする。Pylance も自動で入る。
2. コマンドパレットで明示選択
Ctrl+Shift+P → Python: Select Interpreter を実行し、.venv/bin/python(macOS/Linux)または .venv\Scripts\python.exe(Windows)を選ぶ。公式の Environments ガイド に手順がある。
3. settings.json で固定する
チーム共有や CI を意識するなら .vscode/settings.json にパスを書く。
{
"python.defaultInterpreterPath": "${workspaceFolder}/.venv/bin/python"
}${workspaceFolder} を使うと OS や clone 先が変わっても解決できる。
4. Remote / WSL では再度選び直す
Remote-SSH / WSL で開いたウィンドウは別の VSCode セッションとして扱われ、Local 側の設定は引き継がれない。
Remote 側でも同じく Python: Select Interpreter を実行する。
リモートに venv を作ってからのほうが選択肢に現れやすい。