VSCode Python拡張の「Reactivating terminals」エラー解決
問題の説明
VS Codeをv1.92以降に更新後、Python拡張が起動に失敗し、ステータスバーに「Reactivating terminals...」のスピナーが無限に表示される現象が発生します。この時、OUTPUT > Pythonタブには次のエラーが記録されます:
Failed to resolve env "/mnt/data-linux/miniconda3"主な原因:
- Python環境パスの解決失敗(特にconda/miniconda環境)
- 拡張機能のネイティブロケーター(
python.locator)のバグ - 破損した仮想環境キャッシュ
- 古いPython拡張バージョンの問題
解決策一覧
以下に効果的な解決法を優先度順に記載します。状況に応じて段階的に試してください。
1. Python拡張の更新(最優先推奨)
最も確実な根本解決:バージョン2024.14.1以降で修正済み
# 手順
1. VS Codeで拡張機能アイコン(□■□)をクリック
2. 「Python」拡張を探す
3. 「更新」ボタンをクリック
4. 更新後、VS Codeを完全に再起動最新版のメリット
python.locatorの根本問題修正- 非推奨の回避策ではなく公式対応
- 今後のサポート維持が可能
注意
拡張更新後、必ず「Reload Required」表示で再起動してください。再起動しないと修正が適用されません。
2. Python Locator設定変更(ワークアラウンド)
即効性がある応急処置(拡張更新不可時)
Ctrl + Shift + Pでコマンドパレットを開くPreferences: Open User Settings (JSON)を選択settings.jsonに次を追加:
{
"python.locator": "js",
}- 設定を保存し、VS Codeを完全に再起動
仕組み:
デフォルト設定の"native"モードにバグがあるため、旧版の"js"ロケーターに切り替えます。ただしこれは一時的回避策です。

3. Pythonキャッシュのクリア
環境変更後に効果的
Ctrl + Shift + Pでコマンドパレット開くPython: Clear Cacheを検索・実行Python: Clear Cache and Reload Windowを選択- VS Codeが自動再読み込み
使用タイミング
- 仮想環境パスを変更・移動した後
- conda環境を再構築した後
- 前項の設定変更後も問題が継続する場合
4. 仮想環境の再作成(破損した.venv対策)
エラー例: Failed to resolve env "/tmp/.555/bin/python"
# 破損環境の再作成(プロジェクト直下で実行)
rm -rf .venv # 既存環境削除
python -m venv .venv # 新規環境作成
source .venv/bin/activate # 環境アクティベートWindows(PowerShell)の場合:
Remove-Item -Recurse -Force .venv
python -m venv .venv
.\.venv\Scripts\activate実施後のチェック:
which python # 正しいパス(.venv内)を指しているか確認5. Pythonインタープリターの再選択
シンプルな初期対応
Ctrl + Shift + P→Python: Select Interpreter- 適切な環境(例:
/mnt/data-linux/miniconda3/bin/python)を選択 - VS Codeを再起動

その他のケース別対処法
リモート開発環境での問題
# SSH接続先サーバーで実行
mv ~/.vscode-server/ ~/old_vscode-server/ # キャッシュ削除リモート再接続後、仮想環境が再検出されます。ログは以下で確認可能:
~/.vscode-server/data/logs/<日付>/exthost1/ms-python.python/Python\ Locator.logセキュリティソフトがブロックする場合
- 利用中のセキュリティソフトを一時無効化
pet.exe等のVS Code関連プロセスを許可リスト追加
根本原因と予防策
この問題は主にVS CodeのPython環境探索アルゴリズム変更(python.locator)に起因します。予防のためには:
- 拡張機能は常に最新版を維持(設定で自動更新有効化推奨)
- 仮想環境は適切なパーミッションで管理
- 環境移動時は必ずキャッシュクリアを実行
問題が継続する場合は公式Issueを確認: