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 资源

通过相关的交互式教程、备忘单和代码比较来扩展您的知识。