在開發 Python 專案時,通常會建立虛擬環境 (venv) 來隔離套件。但不少人會遇到一個問題:
「打開 VS Code 的終端,並不會自動切換到我的 venv 環境。」
即使你已經在 VS Code 裡選擇了 Python 解譯器、修改了 settings.json,終端依然是系統預設的環境。
這篇文章會整理出 原因、常見設定方式,以及一個最有效的做法。
為什麼 VS Code 沒有自動啟用 venv?
VS Code 本身確實有一個機制可以「幫你在終端 activate venv」:
-
你在 工作目錄選擇 Python 解譯器。
-
並且確保設定檔裡有:
"python.terminal.activateEnvironment": true
但這個機制有時並不穩定,有些版本的 VS Code 或某些 shell (像是 PowerShell) 沒有正確執行 activate 指令,終端就會開在系統的 Python。
方法 1:官方建議做法
1️⃣ 按下 Ctrl+Shift+P → 選擇 Python: Select Interpreter
選擇你專案對應的 venv 解譯器。
2️⃣ 確認 .vscode/settings.json 裡有記錄:
{
"python.defaultInterpreterPath": "C:/path/to/your/venv/Scripts/python.exe",
"python.terminal.activateEnvironment": true
}
3️⃣ 重新啟動 VS Code。
理論上,打開終端時會自動幫你執行 venv/Scripts/activate。
缺點
很多人遇到的情況是:
-
終端打開後還是系統 Python。
-
沒有顯示虛擬環境名稱。
這通常是 VS Code 與 PowerShell 互動的 bug 或行為差異。
方法 2:直接用 terminal profile 強制載入 venv
這是最穩定的方法,也就是自定義終端 profile,讓 PowerShell 打開時自動執行 activate.ps1。
步驟
1️⃣ 打開 .vscode/settings.json
加入以下設定:
{
"terminal.integrated.profiles.windows": {
"PowerShellVenv": {
"path": "powershell.exe",
"args": [
"-NoExit",
"-Command",
"& { . 'C:/path/to/your/venv/Scripts/Activate.ps1' }"
]
}
},
"terminal.integrated.defaultProfile.windows": "PowerShellVenv"
}
請把 C:/path/to/your/venv 改成你自己的虛擬環境路徑。
效果
當你重新啟動 VS Code 並打開終端時,會看到類似:
(venv) PS C:\your\project>
這表示虛擬環境已經被正確啟用。
小結
| 方法 | 優點 | 缺點 |
|---|---|---|
| 方法 1:選擇解譯器 | 官方推薦、簡單 | 不穩定,有時失效 |
| 方法 2:自訂 profile | 穩定、每次都成功 | 需要手動設定 .vscode/settings.json |
建議優先嘗試 方法 1,如果不穩定再採用 方法 2。
這次我遇到的問題是不管 setting 如何改
VS code 終端打開就是不變
我記得之前明明會變阿...
最後用 方法2
也就是增加 Command 才成功
給大家參考囉
另要要注意
讓這個 setting 要生效
必須使用 Open Folder 加入資料夾
而不是用 Add Folder 到工作區!![]()

而資料夾底下就必須有 .vscode 設定喔!
希望大家可以快樂用 vs code 開發喔~![]()

留言板
歡迎留下建議與分享!希望一起交流!感恩!