できない.dev

VSCode で Python インタプリタが認識されない

Python 拡張機能 ms-python.python はワークスペースごとの選択を保持するため、未選択だとステータスバーに Select Interpreter と表示され実行できない。
コマンドパレットの Python: Select Interpreter で明示選択し、settings.json にパスを書く。

#vscode#python#interpreter#ms-python#settings

要約

VSCode のステータスバーに Select Interpreter と出る、もしくは実行ボタンが反応しないときは、Python 拡張機能がワークスペースに紐づくインタプリタを把握できていない 状態。
コマンドパレットの 「Python: Select Interpreter」 で明示的にインタプリタを選び、必要なら .vscode/settings.json にパスを残す。

よくある原因

  1. 拡張機能が無い・無効: ms-python.python を入れ忘れている、または別プロファイルで無効化されている。
  2. 未選択の状態: 初回起動時に Select Interpreter を一度もやっていないと、venv やシステム Python が拾われない。
  3. インタプリタのパスが消えた: 一度選んだ python.exe / .venv/bin/python を削除・再生成したまま、設定が古いパスを指している。
  4. Remote / WSL の文脈差: Local 側の VSCode ではインタプリタが見えるが、Remote-SSH / WSL で開いたウィンドウは別物として扱われる。

解決策

1. 拡張機能を最新版に揃える

Ctrl+Shift+X の拡張機能ビューで Python (ms-python.python) を検索しインストール。
すでに入っていたら一度無効化 → 有効化で再読み込みする。Pylance も自動で入る。

2. コマンドパレットで明示選択

Ctrl+Shift+PPython: 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 を作ってからのほうが選択肢に現れやすい。

この記事は役立ちましたか?