VS Code 中的 Python 環境
Python Environments 擴充功能將環境與套件管理整合進 Visual Studio Code 的 UI 中。無論您使用的是 venv、uv、conda、pyenv、poetry 還是 pipenv,該擴充功能都提供了一個統一的介面來建立環境、安裝套件及切換直譯器。
核心功能
- 建立、刪除與切換環境
- 安裝與管理套件
- 終端機中已啟用的 Python
- 將環境指派給特定檔案或資料夾(稱為「Python 專案」)
此擴充功能與 Python 擴充功能協同運作,無需任何設定即可開始使用。
快速入門
大多數使用者不需要進行任何設定。該擴充功能會自動探索您的 Python 環境,並在執行程式碼時使用它們。
如果您是基本設定,例如整個工作區使用一個環境:
- 開啟一個 Python 檔案
- 檢查狀態列(Status Bar)以查看目前啟用的環境
- 若要切換環境,請選取狀態列中的環境控制項
需要建立環境嗎?開啟 Python 側邊欄,展開 Environment Managers,然後選取 + 按鈕。擴充功能將引導您完成各個步驟。
使用者介面元件
環境探索
以下環境管理員會被自動偵測
| 管理員 | 搜尋位置 |
|---|---|
| venv | 工作區資料夾(可透過 workspaceSearchPaths 設定) |
| 系統 Python | PATH、/usr/bin、/usr/local/bin、Windows 登錄檔、python.org 安裝路徑 |
| Conda | 執行 conda info --envs 以尋找已設定的環境目錄 |
| Pyenv | $PYENV_ROOT/versions 或 ~/.pyenv/versions |
| Poetry | 專案的 .venv 資料夾與 ~/.cache/pypoetry/virtualenvs |
| Pipenv | ~/.local/share/virtualenvs (Linux/macOS) 或 %USERPROFILE%\.virtualenvs (Windows) |
當擴充功能啟用時,探索程序會自動執行。該擴充功能使用 Python Environment Tool (PET) Rust 二進位檔來掃描您系統中的 Python 環境。PET 會透過檢查您的 PATH(例如尋找 conda、pyenv 和 poetry 可執行檔)以及已知的安裝位置來尋找環境管理員,然後搜尋由這些管理員所管理的環境。
若要手動觸發重新整理:
- 開啟命令面板(
Cmd+Shift+P或Ctrl+Shift+P) - 執行 Python Environments: Refresh All Environment Managers
您也可以點擊 Environment Managers 檢視標頭中的重新整理圖示。

選取重新整理圖示以重新掃描環境。
檢視已發現的環境
已發現的環境會出現在兩個位置:
- Environment Managers 檢視:在 Python 側邊欄中,環境會按管理員類型分組(例如 venv、Conda 等)
- 環境選取:當為專案選擇直譯器時,所有已發現的環境會顯示在統一的清單中

Environment Managers 檢視會將環境按類型分組。
尚未有環境?請參閱 Python 專案章節,了解如何使用該擴充功能建立環境。
設定搜尋路徑
預設情況下,該擴充功能會使用 Glob 模式 ./**/.venv 搜尋整個工作區中的虛擬環境。這會找出工作區中任何名為 .venv 的資料夾。
若要在自訂位置中探索環境,請更新 python-envs.workspaceSearchPaths 設定。
此設定必須在工作區或資料夾層級進行配置,而非使用者層級。
{
"python-envs.workspaceSearchPaths": ["./**/.venv", "./envs/**", "./my-custom-env"]
}
提示:
- 使用
**進行遞迴搜尋(例如./**/env會找到任何深度的env資料夾) - 相對路徑會從您的工作區根資料夾開始解析
若要快速開啟搜尋路徑設定:
- 開啟命令面板
- 執行 Python Environments: Configure Search Settings

新增自訂的 Glob 模式以搜尋其他位置。
全域搜尋路徑:對於工作區以外的環境(例如共用的 ~/envs 資料夾),請使用 python-envs.globalSearchPaths。
{
"python-envs.globalSearchPaths": ["/Users/yourname/envs", "/opt/shared-envs"]
}
此設定需要絕對路徑,且是在使用者(全域)層級進行配置。
舊版設定:如果您之前使用過 python.venvPath 或 python.venvFolders,這些設定會自動與新的搜尋路徑合併。建議遷移至 python-envs.globalSearchPaths 以利未來相容。
選取環境
若要使用已發現的環境:
- 狀態列:選取視窗底部顯示的 Python 版本
- 命令面板:執行 Python: Select Interpreter 並從清單中選擇
所選環境將用於執行程式碼、除錯及 IntelliSense 等語言功能。
預設情況下,除錯器會使用您選取的環境。若要為除錯使用不同的直譯器,請在您的 launch.json 除錯組態中設定 python 屬性。

選取狀態列中的 Python 版本以切換環境。 擴充功能如何自動選取:當您開啟一個未明確選取環境的工作區時,擴充功能會依照下列順序自動選取:
- 工作區本機虛擬環境 (
.venv,venv) - 全域/系統直譯器
若要覆寫此優先順序,請設定 python-envs.defaultEnvManager 來偏好特定管理員(例如 ms-python.python:conda),或針對每個資料夾進行 Python 專案控制。舊版設定也仍然受到支援。
疑難排解環境探索
| 徵狀 | 原因 | 解決方案 |
|---|---|---|
| 環境未列出 | 位置未在搜尋路徑中 | 將路徑新增至 workspaceSearchPaths 或 globalSearchPaths |
| 環境顯示為 "(broken)" | 遺失 pyvenv.cfg 或 Python 可執行檔無效 |
重新建立環境或修復損毀的檔案 |
| 最近建立的環境遺失 | 探索快取已過期 | 執行 Refresh All Environment Managers |
| 找不到 Conda 環境 | 未偵測到 Conda | 確保 conda 在您的 PATH 中或安裝 Conda |
| 設定未生效 | 設定範圍錯誤 | 確保 workspaceSearchPaths 設定在工作區層級,而非使用者層級 |
若要進行進階疑難排解,請直接執行 Python Environment Tool (PET) 以查看原始探索輸出:
- 開啟命令面板
- 執行 Python Environments: Run Python Environment Tool (PET) in Terminal...
- 選擇一個選項:
- Find All Environments:執行
pet find --verbose以列出所有已發現的環境並顯示詳細輸出 - Resolve Environment...:輸入 Python 可執行檔的路徑,以除錯為何特定環境未被偵測到
- Find All Environments:執行

PET 詳細輸出會精確顯示發現了哪些環境以及原因。
進階疑難排解適用於下列情境:
- 您需要驗證某個環境是否被偵測到
- 您想了解為什麼環境出現在特定管理員下方
- 您正在除錯路徑解析問題
建立、刪除與管理環境
建立環境
該擴充功能提供兩種建立環境的方式:為了快速的 快速建立 (Quick Create),以及為了可控性的 自訂建立 (Custom Create)。
快速建立
選取 Environment Managers 檢視中的 + 按鈕。擴充功能會執行下列步驟:
- 使用您的預設管理員(預設為 venv,可透過
python-envs.defaultEnvManager設定) - 挑選可用的最新 Python 版本
- 將環境命名為
.venv(如果已存在,則為.venv-1、.venv-2等) - 如果找到
requirements.txt或pyproject.toml,則安裝相依項目 - 為您的工作區選取新環境
這是取得可用環境最快的方式。

快速建立會以合理的預設值建構環境。
自訂建立
若需要更多控制權,請從命令面板執行 Python: Create Environment 並依照提示操作:
- 選擇管理員:venv 或 conda
- 選取 Python 版本:從已發現的直譯器(venv)或可用的 Python 版本(conda)中選擇
- 命名您的環境:輸入自訂名稱或接受預設值
- 安裝相依項目:選擇從
requirements.txt、pyproject.toml或environment.yml安裝

自訂建立讓您可以設定每個步驟。
使用 uv 進行更快的建立
如果安裝了 uv,該擴充功能會自動將其用於 venv 建立與套件安裝,速度比標準工具快得多。請透過下列設定進行配置:
{
"python-envs.alwaysUseUv": true
}
當啟用 alwaysUseUv(預設值)時,uv 會管理所有虛擬環境。將其設為 false 可僅在明確由 uv 建立的環境中使用 uv。
支援的管理員
| 管理員 | 快速建立 | 自訂建立 |
|---|---|---|
| venv | ✅ | ✅ |
| conda | ✅ | ✅ |
| pyenv | — | — |
| poetry | — | — |
| pipenv | — | — |
只有 venv 和 conda 支援直接從 VS Code 建立環境。其他管理員(pyenv、poetry、pipenv)會探索現有環境,但無法透過擴充功能建立新環境。請使用它們各自的 CLI 工具來建立環境,然後擴充功能會自動發現它們。
刪除環境
若要刪除環境:
- 在 Environment Managers 檢視中找到該環境
- 按右鍵並選取 Delete
刪除環境會從磁碟中移除該環境資料夾。任何使用此環境的專案都需要您重新選取新的環境。
Python 專案
Python 專案是指您想要與特定環境關聯的任何檔案或資料夾。預設情況下,您的整個工作區使用一個環境。專案功能讓您可以將不同的環境指派給不同的資料夾。這對於大型單體儲存庫 (mono-repos)、微服務或跨 Python 版本測試來說至關重要。
為什麼要使用專案?
| 情境 | 沒有專案時 | 使用專案時 |
|---|---|---|
| 包含後端與 ML 服務的單體儲存庫 | 兩者共用一個直譯器 | 各自擁有獨立的環境 |
| 測試 Python 3.10 與 3.12 | 手動切換直譯器 | 為不同資料夾指派不同版本 |
| 與團隊成員共用工作區 | 每個人都需手動配置 | 透過 .vscode/settings.json 同步設定 |
如果您整個工作區只有一個環境,則不需要明確設定專案。選擇一個直譯器即可。
Workspace
├── Python Project: backend/
│ └── Environment: .venv (Python 3.12)
│ └── Manager: venv
│
├── Python Project: frontend-utils/
│ └── Environment: .venv (Python 3.10)
│ └── Manager: venv
│
└── Python Project: ml-pipeline/
└── Environment: ml-env (Python 3.11)
└── Manager: conda
哪些功能使用專案指派?
- 執行與除錯:使用該專案的環境
- 終端機:以該專案的環境啟用
- 測試總管 (Test Explorer):每個專案都會擁有自己的測試樹狀結構及其自己的直譯器(請參閱 多專案測試)
Pylance 與 Jupyter 目前每個工作區僅使用單一直譯器,而非每個專案一個環境。請參閱 已知限制。
新增專案
若要將資料夾或檔案視為獨立專案:
- 在檔案總管中對其按右鍵
- 選取 Add as Python Project
或者,在 Python Projects 檢視中選取 + 並選擇以下任一選項:
- Add Existing:手動選取檔案/資料夾
- Auto Find:探索包含
pyproject.toml或setup.py的資料夾
當您新增專案時,其資料夾會自動新增至環境搜尋路徑。專案資料夾內的環境(例如 my-project/.venv)會自動被發現,無需更新 workspaceSearchPaths。

新增現有資料夾或自動探索專案。
指派環境
一旦將資料夾設為專案,即可指派其環境:
- 在 Python Projects 檢視中,點擊顯示在專案下方的環境(或「No environment」)
- 從已發現的環境中選取
選定的環境將用於執行或除錯該專案中的檔案。

點擊環境即可變更。
設定如何儲存
當您將環境指派給專案時,該擴充功能會寫入您的工作區設定(.vscode/settings.json)
{
"python-envs.pythonProjects": [
{
"path": "backend",
"envManager": "ms-python.python:venv"
},
{
"path": "ml-service",
"envManager": "ms-python.python:conda"
}
]
}
請注意,設定儲存的是環境管理員,而不是硬編碼的直譯器路徑。擴充功能會分開記憶您選取的特定環境,並在執行時進行解析。這種設計使設定易於共享:
- 無機器特定路徑:團隊成員不需要
/Users/yourname/.venv - 跨系統可攜:適用於 macOS、Windows 和 Linux
- 環境重建後仍有效:如果您刪除並重建
.venv,它仍然有效
與團隊成員共享
- 將
.vscode/settings.json提交至您的儲存庫 - 團隊成員複製並開啟工作區
- 他們建立自己的環境(快速建立在這裡非常好用)
- 擴充功能會自動使用每個專案已設定的管理員
環境資料夾(如 .venv)仍需在每台機器上建立。僅共用設定,不共用環境本身。
移除專案
在 Python Projects 檢視中對專案按右鍵,並選取 Remove Python Project。這會移除對應關係,但不會刪除任何檔案。
從範本建立專案
若要以正確結構快速建構新專案,請從命令面板執行 Python Envs: Create New Project from Template。選擇:
- Package:建立包含
pyproject.toml、套件目錄與測試的資料夾 - Script:建立一個包含行內相依項目元資料 (PEP 723) 的單一
.py檔案
請參閱完整的 Python 專案指南以了解範本結構詳細資訊。
深入了解
有關範本、多根目錄工作區、常見情境與疑難排解的詳細指引,請參閱完整的 Python 專案指南。
套件管理
直接從 VS Code 安裝與解除安裝 Python 套件,無需開啟終端機。
安裝套件
- 在 Environment Managers 檢視中找到環境
- 按右鍵並選取 Manage Packages
- 搜尋套件並選取您要安裝的套件
或從命令面板執行 Python Envs: Manage Packages。

直接從 VS Code 搜尋並安裝套件。
從需求檔案安裝:您也可以從 requirements.txt、pyproject.toml 或 environment.yml 安裝套件。出現提示時選取檔案,擴充功能會安裝所有列出的相依項目。
解除安裝套件
- 在 Environment Managers 檢視中展開環境以查看已安裝的套件
- 對套件按右鍵並選取 Uninstall Package
各環境的套件管理員
擴充功能會根據您的環境自動使用適當的套件管理員:
| 環境 | 套件管理員 |
|---|---|
| venv | pip |
| conda | conda |
| pyenv | pip |
| poetry | pip |
| pipenv | pip |
| 系統 | pip |
若要覆寫預設值,請設定 python-envs.defaultPackageManager。
使用 uv 進行更快的安裝
如果安裝了 uv 且啟用了 python-envs.alwaysUseUv(預設值),venv 環境中的套件安裝將使用 uv pip 而非一般 pip,這對於大型相依樹狀結構來說顯著更快。
設定與組態
本章節涵蓋所有擴充功能設定、直譯器選取運作方式,以及舊版設定遷移。
直譯器選取優先順序
當您開啟工作區時,擴充功能會依照下列順序檢查來源以決定使用哪個環境:
| 優先順序 | 來源 | 適用情境 |
|---|---|---|
| 1 | pythonProjects[] |
如果您已為此路徑設定專案 |
| 2 | defaultEnvManager |
僅在您已明確設定時(而非預設值) |
| 3 | python.defaultInterpreterPath |
舊版設定(若有設定) |
| 4 | 自動探索 | 尋找工作區本機 .venv,然後是全域直譯器 |
關鍵原則:使用者配置的設定永遠優先於預設值。如果您沒有明確設定 defaultEnvManager(它擁有內建預設值),擴充功能會跳過它並檢查下一個優先順序。
快取:擴充功能會快取已解析的環境以提升效能,但您的明確設定永遠優先於快取值。您無須擔心過期的快取覆寫您的選擇。
關於直譯器選取行為的更多詳細資訊,請參閱 直譯器選取快速參考。
何時寫入設定
只有在您進行明確變更時,擴充功能才會寫入設定:
| 動作 | 寫入設定? |
|---|---|
| 開啟工作區(首次) | ❌ 否 |
| 擴充功能自動選取環境 | ❌ 否 |
| 您手動選取環境 | ✅ 是,更新 pythonProjects |
| 您建立新環境 | ✅ 是,可能更新 pythonProjects |
| 您在 UI 中更改設定 | ✅ 是 |
這確保了開啟工作區不會將自動產生的項目新增至您的 settings.json。
Python Environments 設定
| 設定 | 預設值 | 說明 |
|---|---|---|
python-envs.defaultEnvManager |
ms-python.python:venv |
建立環境的預設環境管理員。選項:ms-python.python:venv, ms-python.python:conda |
python-envs.defaultPackageManager |
ms-python.python:pip |
預設套件管理員。通常由環境管理員決定。 |
python-envs.pythonProjects |
[] |
專案組態陣列。透過 UI 管理,很少手動編輯。 |
python-envs.workspaceSearchPaths |
["./**/.venv"] |
在工作區中搜尋環境的 Glob 模式。必須在工作區層級設定。 |
python-envs.globalSearchPaths |
[] |
全域搜尋環境的絕對路徑(例如 ~/envs)。 |
python-envs.alwaysUseUv |
true |
在可用時使用 uv 進行 venv 建立與套件安裝。 |
終端機設定
當您在 VS Code 中開啟終端機時,擴充功能會自動啟用您選取的 Python 環境,以便 python、pip 與相關指令使用正確的直譯器。
| 設定 | 預設值 | 說明 |
|---|---|---|
python-envs.terminal.autoActivationType |
命令 |
決定如何在終端機中啟用環境。請參閱下方內容。 |
python-envs.terminal.showActivateButton |
false |
(實驗性)在終端機顯示啟用/停用按鈕。 |
python.terminal.useEnvFile |
false |
設為 true 時,將 .env 檔案中的變數注入終端機。 |
python.envFile |
${workspaceFolder}/.env |
啟用 useEnvFile 時所使用的 .env 檔案路徑。 |
終端機啟用類型
| 值 | 行為 | 最適合 |
|---|---|---|
shellStartup |
透過 Shell 啟動指令碼啟用。環境在終端機開啟時立即生效 | Copilot 終端機指令,更簡潔的體驗 |
命令 |
在終端機開啟後可視地執行啟用指令 | 與所有 Shell 相容 |
關閉 |
No automatic activation | 手動控制 |
如果您使用 Copilot 執行終端機指令,請使用 shellStartup。它確保環境在第一個指令執行前已啟用。這將在未來版本中成為預設值。
變更 autoActivationType 後,請重新啟動終端機以使變更生效。若要還原 shellStartup 的變更,請執行 Python Envs: Revert Shell Startup Script Changes。
開啟特定環境的終端機
您可以開啟一個已啟用任何環境的新終端機:
- 在 Environment Managers 檢視中找到該環境
- 按右鍵並選取 Open in Terminal

開啟已啟用任何環境的終端機。
關於詳細疑難排解與啟用運作機制,請參閱 終端機自動啟用說明。
.env 檔案支援
若要將 .env 檔案中的環境變數注入終端機:
- 在工作區根目錄建立
.env檔案,或使用python.envFile指定自訂路徑 - 將
python.terminal.useEnvFile設為true
# .env
API_KEY=your-secret-key
DATABASE_URL=postgres:///mydb
建立終端機時會注入變數。這對於不應提交至版本控制系統的開發憑證非常有用。
舊版設定
這些來自 Python 擴充功能的設定仍受支援,但已有較新的替代方案:
| 舊版設定 | 新替代方案 | 備註 |
|---|---|---|
python.venvPath |
python-envs.globalSearchPaths |
已自動合併。建議遷移。 |
python.venvFolders |
python-envs.globalSearchPaths |
已自動合併。建議遷移。 |
python.terminal.activateEnvironment |
python-envs.terminal.autoActivationType |
設為 off 以停用。新設定優先。 |
python.defaultInterpreterPath |
— | 仍受支援。作為優先順序鏈中的備用項目。 |
python.condaPath |
— | 仍受支援。指定自訂 conda 可執行檔位置。 |
設定範圍參考
設定會根據配置位置而有不同行為:
| 設定 | 使用者 (User) | 工作區 | 資料夾 |
|---|---|---|---|
defaultEnvManager |
✅ | ✅ | ❌ |
defaultPackageManager |
✅ | ✅ | ❌ |
pythonProjects |
❌ | ✅ | ✅ |
workspaceSearchPaths |
❌ | ✅ | ✅ |
globalSearchPaths |
✅ | ❌ | ❌ |
alwaysUseUv |
✅ | ❌ | ❌ |
terminal.autoActivationType |
✅ | ❌ | ❌ |
關鍵觀察:workspaceSearchPaths 必須設定在工作區或資料夾層級(而非使用者層級),因為它是相對於工作區資料夾的。
擴充性
Python Environments 擴充功能設計為可擴充。任何環境或套件管理員都可以建立擴充功能來外掛至 Python 側邊欄,與內建管理員並列。這代表生態系統可以在不等待此擴充功能更新的情況下,支援新的工具。
社群成員正在為額外的環境管理員建立擴充功能,例如 Pixi Extension。
已知限制
Pylance 與多專案工作區
Pylance 不支援在同一個工作區中使用不同直譯器的多個 Python 專案。即使您使用 Python 專案為不同資料夾設定了個別環境,Pylance 仍會為整個工作區使用單一直譯器(通常是與工作區根目錄相關聯的那個)。若要為不同資料夾使用不同直譯器,請將它們新增為 多根目錄工作區(File > Add Folder to Workspace)中的工作區資料夾,因為 Pylance 是針對每個工作區資料夾獨立執行的。
Jupyter Notebook
Jupyter Notebook 不使用 Python Environments API 進行環境探索。相反地,它們依賴較舊的 Python 擴充功能 API。這意味著 Notebook Kernel 選取器顯示的環境清單可能會與 Environment Managers 檢視中的不同。
後續步驟
- Python 教學課程 - 開始在 VS Code 中使用 Python。
- 除錯 - 學習如何對您的 Python 程式碼進行除錯。
- 測試 - 為您的 Python 專案配置並執行測試。
- 設定參考 - 探索所有 Python 擴充功能設定。