Python 虛擬環境:venv 與依賴隔離

掌握 Python 虛擬環境。了解如何使用 venv 和 pip 安全地建立、啟動和管理相依性。

在編輯器中嘗試

概述

當處理多個 Python 專案時,您將不可避免地遇到依賴衝突。項目 A 可能需要Django版本 3.2,而項目 B 需要Django版本 5.0。如果您全域安裝這些軟體包,它們將相互覆蓋,從而破壞您的應用程式之一。虛擬環境透過建立包含自己的 Python 二進位檔案和庫安裝的獨立的、特定於專案的目錄來解決這個關鍵問題。

Python 透過「venv」模組提供對虛擬環境的內建支援。建立虛擬環境時,會產生一個新資料夾,其中包含 Python 解釋器的副本以及用於調整 shell 環境的腳本。啟動後,您使用「pip」安裝的任何套件都會直接路由到這個獨立的資料夾,從而使您的全域 Python 安裝保持乾淨且不受專案特定庫的影響。

管理虛擬環境涉及三個核心命令。首先,「python -m venv venv」會建立名為「venv」的虛擬環境目錄。接下來,啟動環境(macOS/Linux 上的「source venv/bin/activate」或 Windows 上的「venv\Scripts\activate」)。最後,您使用「pip freeze >requirements.txt」凍結依賴項,建立一個列表,其他開發人員可以使用該列表來重新建立確切的環境。了解虛擬環境是現代 Python 工程不可妥協的最佳實務。

程式碼和執行輸出

示範創建、啟動和輸出包要求的命令的模型。

venv_management.py
在編輯器中嘗試
# This script prints the commands used to configure a virtual environment
commands = [
    "python -m venv my_env       # Create environment",
    "source my_env/bin/activate  # Activate environment (Mac/Linux)",
    "pip install requests        # Install isolated package",
    "pip freeze > requirements.txt # Export dependency catalog"
]

print("--- Virtual Environment Lifecycle ---")
for index, cmd in enumerate(commands, 1):
    print(f"Step {index}: {cmd}")
端子輸出
--- Virtual Environment Lifecycle ---
Step 1: python -m venv my_env       # Create environment
Step 2: source my_env/bin/activate  # Activate environment (Mac/Linux)
Step 3: pip install requests        # Install isolated package
Step 4: pip freeze > requirements.txt # Export dependency catalog

逐步實施

  • 隔離工作區專案以防止依賴項重疊
  • 為 Docker 容器配置可預測的環境
  • 使用requirements.txt清單傳送可複製的程式碼庫

常見問題解答

我應該在 Python 專案中 gitignore 哪些資料夾?

您應該始終將虛擬環境目錄(通常是“venv/”或“.venv/”)新增至 .gitignore 檔案中。切勿將外部庫相依性檢查到 git 中。

如何停用虛擬環境?

只需在終端機視窗中輸入命令“deactivate”,您的 shell 就會回到全域 Python 環境。

相關主題

推薦的 Python 資源

透過相關的互動式教學、備忘單和程式碼比較來擴展您的知識。