VS Code 中的 Python 環境

Python Environments 擴充功能將環境與套件管理整合進 Visual Studio Code 的 UI 中。無論您使用的是 venvuvcondapyenvpoetry 還是 pipenv,該擴充功能都提供了一個統一的介面來建立環境、安裝套件及切換直譯器。

核心功能

  • 建立、刪除與切換環境
  • 安裝與管理套件
  • 終端機中已啟用的 Python
  • 將環境指派給特定檔案或資料夾(稱為「Python 專案」)

此擴充功能與 Python 擴充功能協同運作,無需任何設定即可開始使用。

快速入門

大多數使用者不需要進行任何設定。該擴充功能會自動探索您的 Python 環境,並在執行程式碼時使用它們。

如果您是基本設定,例如整個工作區使用一個環境:

  1. 開啟一個 Python 檔案
  2. 檢查狀態列(Status Bar)以查看目前啟用的環境
  3. 若要切換環境,請選取狀態列中的環境控制項

需要建立環境嗎?開啟 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(例如尋找 condapyenvpoetry 可執行檔)以及已知的安裝位置來尋找環境管理員,然後搜尋由這些管理員所管理的環境。

若要手動觸發重新整理:

  1. 開啟命令面板(Cmd+Shift+PCtrl+Shift+P
  2. 執行 Python Environments: Refresh All Environment Managers

您也可以點擊 Environment Managers 檢視標頭中的重新整理圖示。

Screenshot showing the Environment Managers panel in the Python sidebar with the refresh button highlighted in the view header.

選取重新整理圖示以重新掃描環境。

檢視已發現的環境

已發現的環境會出現在兩個位置:

  • Environment Managers 檢視:在 Python 側邊欄中,環境會按管理員類型分組(例如 venv、Conda 等)
  • 環境選取:當為專案選擇直譯器時,所有已發現的環境會顯示在統一的清單中

Screenshot showing the Environment Managers tree view with Global, venv, and Conda sections expanded, displaying discovered Python environments grouped by manager type.

Environment Managers 檢視會將環境按類型分組。

提示

尚未有環境?請參閱 Python 專案章節,了解如何使用該擴充功能建立環境。

設定搜尋路徑

預設情況下,該擴充功能會使用 Glob 模式 ./**/.venv 搜尋整個工作區中的虛擬環境。這會找出工作區中任何名為 .venv 的資料夾。

若要在自訂位置中探索環境,請更新 python-envs.workspaceSearchPaths 設定。

注意

此設定必須在工作區或資料夾層級進行配置,而非使用者層級。

{
  "python-envs.workspaceSearchPaths": ["./**/.venv", "./envs/**", "./my-custom-env"]
}

提示:

  • 使用 ** 進行遞迴搜尋(例如 ./**/env 會找到任何深度的 env 資料夾)
  • 相對路徑會從您的工作區根資料夾開始解析

若要快速開啟搜尋路徑設定:

  1. 開啟命令面板
  2. 執行 Python Environments: Configure Search Settings

Screenshot showing the VS Code Settings editor filtered to the Python Environments extension, displaying the python-envs Workspace Search Paths setting with a glob pattern entry.

新增自訂的 Glob 模式以搜尋其他位置。

全域搜尋路徑:對於工作區以外的環境(例如共用的 ~/envs 資料夾),請使用 python-envs.globalSearchPaths

{
  "python-envs.globalSearchPaths": ["/Users/yourname/envs", "/opt/shared-envs"]
}

此設定需要絕對路徑,且是在使用者(全域)層級進行配置。

舊版設定:如果您之前使用過 python.venvPathpython.venvFolders,這些設定會自動與新的搜尋路徑合併。建議遷移至 python-envs.globalSearchPaths 以利未來相容。

選取環境

若要使用已發現的環境:

  • 狀態列:選取視窗底部顯示的 Python 版本
  • 命令面板:執行 Python: Select Interpreter 並從清單中選擇

所選環境將用於執行程式碼、除錯及 IntelliSense 等語言功能。

提示

預設情況下,除錯器會使用您選取的環境。若要為除錯使用不同的直譯器,請在您的 launch.json 除錯組態中設定 python 屬性。

Screenshot showing the Select Interpreter quick pick with the currently selected interpreter at the top, and a list of discovered environments labeled by type such as Conda, Global, and Workspace.

選取狀態列中的 Python 版本以切換環境。 擴充功能如何自動選取:當您開啟一個未明確選取環境的工作區時,擴充功能會依照下列順序自動選取:

  1. 工作區本機虛擬環境 (.venv, venv)
  2. 全域/系統直譯器

若要覆寫此優先順序,請設定 python-envs.defaultEnvManager 來偏好特定管理員(例如 ms-python.python:conda),或針對每個資料夾進行 Python 專案控制。舊版設定也仍然受到支援。

疑難排解環境探索

徵狀 原因 解決方案
環境未列出 位置未在搜尋路徑中 將路徑新增至 workspaceSearchPathsglobalSearchPaths
環境顯示為 "(broken)" 遺失 pyvenv.cfg 或 Python 可執行檔無效 重新建立環境或修復損毀的檔案
最近建立的環境遺失 探索快取已過期 執行 Refresh All Environment Managers
找不到 Conda 環境 未偵測到 Conda 確保 conda 在您的 PATH 中或安裝 Conda
設定未生效 設定範圍錯誤 確保 workspaceSearchPaths 設定在工作區層級,而非使用者層級

若要進行進階疑難排解,請直接執行 Python Environment Tool (PET) 以查看原始探索輸出:

  1. 開啟命令面板
  2. 執行 Python Environments: Run Python Environment Tool (PET) in Terminal...
  3. 選擇一個選項:
    • Find All Environments:執行 pet find --verbose 以列出所有已發現的環境並顯示詳細輸出
    • Resolve Environment...:輸入 Python 可執行檔的路徑,以除錯為何特定環境未被偵測到

Screenshot showing the VS Code terminal with verbose output from the Python Environment Tool, displaying a breakdown of search times by locator, environment counts by type, and discovered managers.

PET 詳細輸出會精確顯示發現了哪些環境以及原因。

進階疑難排解適用於下列情境:

  • 您需要驗證某個環境是否被偵測到
  • 您想了解為什麼環境出現在特定管理員下方
  • 您正在除錯路徑解析問題

建立、刪除與管理環境

建立環境

該擴充功能提供兩種建立環境的方式:為了快速的 快速建立 (Quick Create),以及為了可控性的 自訂建立 (Custom Create)

快速建立

選取 Environment Managers 檢視中的 + 按鈕。擴充功能會執行下列步驟:

  • 使用您的預設管理員(預設為 venv,可透過 python-envs.defaultEnvManager 設定)
  • 挑選可用的最新 Python 版本
  • 將環境命名為 .venv(如果已存在,則為 .venv-1.venv-2 等)
  • 如果找到 requirements.txtpyproject.toml,則安裝相依項目
  • 為您的工作區選取新環境

這是取得可用環境最快的方式。

Screenshot showing the Quick Create flow with the plus button in the Environment Managers view header, a prompt to select projects, and a status bar notification indicating the environment is being created.

快速建立會以合理的預設值建構環境。

自訂建立

若需要更多控制權,請從命令面板執行 Python: Create Environment 並依照提示操作:

  1. 選擇管理員:venv 或 conda
  2. 選取 Python 版本:從已發現的直譯器(venv)或可用的 Python 版本(conda)中選擇
  3. 命名您的環境:輸入自訂名稱或接受預設值
  4. 安裝相依項目:選擇從 requirements.txtpyproject.tomlenvironment.yml 安裝

Screenshot showing the Custom Create flow with the Select packages to install dialog, listing available packages with checkboxes and an install count indicator.

自訂建立讓您可以設定每個步驟。

使用 uv 進行更快的建立

如果安裝了 uv,該擴充功能會自動將其用於 venv 建立與套件安裝,速度比標準工具快得多。請透過下列設定進行配置:

{
  "python-envs.alwaysUseUv": true
}

當啟用 alwaysUseUv(預設值)時,uv 會管理所有虛擬環境。將其設為 false 可僅在明確由 uv 建立的環境中使用 uv。

支援的管理員

管理員 快速建立 自訂建立
venv
conda
pyenv
poetry
pipenv
注意

只有 venvconda 支援直接從 VS Code 建立環境。其他管理員(pyenv、poetry、pipenv)會探索現有環境,但無法透過擴充功能建立新環境。請使用它們各自的 CLI 工具來建立環境,然後擴充功能會自動發現它們。

刪除環境

若要刪除環境:

  1. Environment Managers 檢視中找到該環境
  2. 按右鍵並選取 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 目前每個工作區僅使用單一直譯器,而非每個專案一個環境。請參閱 已知限制

新增專案

若要將資料夾或檔案視為獨立專案:

  1. 在檔案總管中對其按右鍵
  2. 選取 Add as Python Project

或者,在 Python Projects 檢視中選取 + 並選擇以下任一選項:

  • Add Existing:手動選取檔案/資料夾
  • Auto Find:探索包含 pyproject.tomlsetup.py 的資料夾
提示

當您新增專案時,其資料夾會自動新增至環境搜尋路徑。專案資料夾內的環境(例如 my-project/.venv)會自動被發現,無需更新 workspaceSearchPaths

Screenshot showing the Python Projects panel with the Add Python Project dropdown menu displaying Add Existing and Auto Find options.

新增現有資料夾或自動探索專案。

指派環境

一旦將資料夾設為專案,即可指派其環境:

  1. Python Projects 檢視中,點擊顯示在專案下方的環境(或「No environment」)
  2. 從已發現的環境中選取

選定的環境將用於執行或除錯該專案中的檔案。

Screenshot showing the Python Projects view with two projects listed, each assigned a Python environment, and the Environment Managers section below with available interpreters and installed packages.

點擊環境即可變更。

設定如何儲存

當您將環境指派給專案時,該擴充功能會寫入您的工作區設定(.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,它仍然有效

與團隊成員共享

  1. .vscode/settings.json 提交至您的儲存庫
  2. 團隊成員複製並開啟工作區
  3. 他們建立自己的環境(快速建立在這裡非常好用)
  4. 擴充功能會自動使用每個專案已設定的管理員
注意

環境資料夾(如 .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 套件,無需開啟終端機。

安裝套件

  1. Environment Managers 檢視中找到環境
  2. 按右鍵並選取 Manage Packages
  3. 搜尋套件並選取您要安裝的套件

或從命令面板執行 Python Envs: Manage Packages

Screenshot showing the Manage Packages dialog with a search box at the top and a scrollable list of packages with checkboxes, indicating installed packages and the total number selected for installation.

直接從 VS Code 搜尋並安裝套件。

從需求檔案安裝:您也可以從 requirements.txtpyproject.tomlenvironment.yml 安裝套件。出現提示時選取檔案,擴充功能會安裝所有列出的相依項目。

解除安裝套件

  1. Environment Managers 檢視中展開環境以查看已安裝的套件
  2. 對套件按右鍵並選取 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 環境,以便 pythonpip 與相關指令使用正確的直譯器。

設定 預設值 說明
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

開啟特定環境的終端機

您可以開啟一個已啟用任何環境的新終端機:

  1. Environment Managers 檢視中找到該環境
  2. 按右鍵並選取 Open in Terminal

Screenshot showing the Environment Managers tree view with a venv environment selected and the Create Python Terminal tooltip visible on the terminal icon button.

開啟已啟用任何環境的終端機。

關於詳細疑難排解與啟用運作機制,請參閱 終端機自動啟用說明

.env 檔案支援

若要將 .env 檔案中的環境變數注入終端機:

  1. 在工作區根目錄建立 .env 檔案,或使用 python.envFile 指定自訂路徑
  2. 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 擴充功能設定。
© . This site is unofficial and not affiliated with Microsoft.