为 Python 项目创建独立虚拟运行环境 (venv)

  • 依赖隔离:不同项目依赖的库及其版本可能互不兼容,虚拟环境可避免全局污染。
  • 多版本 Python:配合 pyenv 等工具,可为每个项目选用最合适的 Python 版本。
  • 可移植性:团队成员或 CI/CD 只需 python -m venvpip install -r requirements.txt 即可重建相同环境。

Python 3.3 之前可使用 virtualenv,参考 用 VirtualEnv 为项目创建独立运行环境

方案 依赖隔离 解释器隔离 额外依赖 典型场景
venv (内置) ❌ (复用系统解释器) 常规开发、CI/CD
virtualenv virtualenv 兼容旧版 Python (<3.3)
Conda Anaconda/Miniconda 数据科学、需 C 库打包
# 在项目根目录创建 .venv 文件夹 (推荐隐藏)
python3 -m venv .venv

# 激活 (bash/zsh)
source .venv/bin/activate
# 若使用 fish
# source .venv/bin/activate.fish

# 提示符变为 (.venv) ➜ 表示已激活
# 安装依赖示例
pip install requests
# 创建
py -m venv .venv
# 激活
.\.venv\Scripts\Activate.ps1   # PowerShell
# 或
.\.venv\Scripts\activate.bat    # CMD

若遇 execution policy 限制,管理员 PowerShell 运行:Set-ExecutionPolicy -ExecutionPolicy RemoteSigned -Scope CurrentUser

which python   # *nix
where python   # Windows

应输出项目 .venv 路径。

  • VS CodeCtrl/Cmd + Shift + PPython: Select Interpreter 选中 .venv 中的解释器。
  • PyCharmSettings / Preferences > Python Interpreter > Add 选择 Existing environment 并指向 .venv/bin/python
操作 命令 说明
升级 pip python -m pip install --upgrade pip pip 的升级
安装依赖 pip install package-name 查看 pip 使用教程
导出依赖 (锁定) pip freeze > requirements.txt 用 pip freeze 导出依赖清单
从文件安装依赖 pip install -r requirements.txt 参见 pip 从 requirements 批量安装
停用/退出虚拟环境 deactivate 还原 PATH 环境变量
删除虚拟环境 rm -rf .venv (*nix) / rmdir /s .venv (Win) 完全移除
.venv/
__pycache__/
  1. 为何激活后仍使用系统 pip?
    确认已执行 source .venv/bin/activate (或 Windows 对应脚本)。如果使用 VS Code,检查 Python: Select Interpreter 是否指向 .venv

  2. 如何为 VS Code 自动激活虚拟环境?
    在工作区设置加入:

"python.defaultInterpreterPath": "${workspaceFolder}/.venv/bin/python"
  1. 需要多版本 Python?
    使用 pyenv 安装所需版本后,再执行 pyenv local 3.12.0 && python -m venv .venv

  2. 激活脚本下载后报“无执行权限”
    Linux/macOS 下执行 chmod +x .venv/bin/activate 赋予可执行权限。

  3. 如何在 CI 中缓存虚拟环境?
    .venv 放到缓存目录并在安装依赖前恢复,示例见 GitHub Actions actions/cache 的官方用法。


推广:阿里云百炼大模型 9折优惠 + 所有模型各百万免费Token →