Agentic Research

虛擬環境(venv)

又稱:虛擬環境 · virtual environment · virtualenv · PEP 668 · externally-managed-environment

一個專案專用、跟系統隔開的 Python 套件資料夾。啟動它之後,pip 裝的東西只會進到裡面。

你會在什麼時候遇到它

在 macOS 或 Linux 上第一次 pip install,很可能直接被 error: externally-managed-environment 擋下來。不認得這句話,你會以為自己打錯字,或去網上找「一行指令解法」把系統 Python 弄壞。正解是建一個 venv,成本只有兩行指令。

打個比方

像另外租一間工作室,而不是在自家客廳施工。裡面堆什麼工具、弄得再亂都不影響客廳;不喜歡了,整間退租就好。

最小範例

python3 -m venv .venv                # 在目前資料夾建一個叫 .venv 的環境
source .venv/bin/activate            # macOS / Linux:啟動它
.venv\Scripts\Activate.ps1           # Windows PowerShell:啟動它
python3 -m pip install requests      # 之後裝的東西都只進到 .venv 裡
deactivate                           # 用完離開

啟動成功後,提示字元前面會多出 (.venv)。看到那個前綴,你才知道接下來的 python 和 pip 指的是這個環境,不是系統那一個。

最常搞錯的地方

  • 建了 venv 卻忘了啟動就直接 pip install。東西照樣進到系統 Python,錯誤訊息一字不改地再來一次。
  • 把 externally-managed-environment 讀成「權限不夠」,於是加 sudo 重跑。這跟權限無關,是發行版刻意擋下來的;加了 sudo 只會讓後果更難收拾。

相關詞條

下一步