VSCodeのターミナル起動時に勝手に source venv activateコマンドが実行される

TL;DR : VSCodeの親切な「自動有効化」機能だったが、多分エージェントがONにした。そんな権限あるのか・・・?

開発中のプロジェクト self_disciplined_invest_agent をVSCodeで開き、ターミナル(zsh)を起動すると、プロンプトが表示される直前に、今開いているプロジェクトのPython仮想環境(venv)を有効化するコマンドが実行されていました。

❯ source /Users/tonishi/Documents/GitHub/cOnigashima/self_disciplined_invest_agent/.venv/bin/activat

いや便利なんですが、一体どこで設定されているんでしょう…?

 

シェルの設定ファイル

ターミナル起動時に自動実行されるといえば、真っ先に思いつくのはシェルの設定ファイルだ。私は zsh を使っているので、~/.zshrc をさっそく中身を確認してみたが、なかった。

starshipsdkman などの設定はあるが、self_disciplined_invest_agent へのパスや source .../activate といった記述はどこにも見当たらない。~/.bashrc や、~/.zshrc から source されている他の設定ファイルも調べたが、空振りだった。

 

他のプロジェクトやVSCodeを介さずに、Macの標準ターミナルを起動してみるとコマンドは一切表示されなかった。

VSCodeは「何」を見て判断したのか

pyvenv.cfg こそが、VSCode(正確にはVSCodeのPython拡張機能)に対して「この .venv フォルダは、Pythonの仮想環境ですよ!」と知らせる役割を果たしていた。

VSCodeの設定でいうと、

  1. VSCodeの設定 ( Cmd + , ) を開く
  2. 検索窓で python.terminal.activateEnvironment と入力

そこには「Python > Terminal: Activate Environment」という項目があり、バッチリとチェックが入っていた。

原因のまとめ:

  1. VSCodeがプロジェクト内に .venv フォルダを発見。
  2. その中の pyvenv.cfg を見て「お、これはPython仮想環境だな」と自動認識
  3. VSCodeの設定「Terminal: Activate Environment」が On になっていた。
  4. VSCodeが「親切心」で、ターミナル起動時にその仮想環境を自動で有効化(source .../activate)してくれていた。

というわけでコマンド自動実行は、バグや設定ミスではなく、VSCodeのPython拡張機能による便利な機能でした。もしこの自動実行を止めたい場合は、この設定のチェックを外すだけでいいとのこと。

あとこの調査と記事はほとんどAIがやってくれましたが、この機能のONもAIがやったんですかね?CodeXしか走らせてなかったのでそれかなぁ・・・。肝心なところはそこなんだよな。

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!
目次