🐸 青蛙编程网
首页 / Python / 虚拟环境 venv / 7. 对比与展望

7. 对比与展望:virtualenv / conda / poetry / uv

这是什么:venv 只是内置的隔离基本功,社区里还有 virtualenv、conda、poetry、uv 等各管一摊的工具。

为什么用:venv 是内置基本功——但社区工具各有主场。只有把它们的分工摆清楚,你才知道什么时候该换更大的炮,而不是死磕一个。

如何用:本章先给四件武器排张对照表,再挑 conda 和 poetry / uv 细说各自的适用场景。

7.1 四件武器速览

工具 定位 何时用
venv(内置) 隔离环境 + pip 清单 日常脚本、一般项目:默认首选
virtualenv 第三方老牌,功能与 venv 高度重叠,更快更多参 适合已在 legacy 工作流里的团队
conda 环境管理器 + 跨语言包管理器 AI / 数据科学(PyTorch、CUDA 等非 Python 依赖)
poetry / uv 项目级依赖与构建/发布一体 正式库、开源项目(锁文件、版本管理、发布)

7.2 conda:为什么 AI 圈人手一份

conda create -n ml python=3.12
conda activate ml
conda install pytorch torchvision  # 连 CUDA 运行库一起搞定

pip 只管 Python 包;conda 能装二进制环境和 C 库(编译好的 CUDA、MKL)。深度学习环境十年玄学,conda 大幅 democratize。

7.3 poetry / uv:把依赖管理工业化

venv + requirements.txt 有个的软肋:freeze 把直接依赖和间接依赖平铺在一起,链条一长就不优雅——这类工具带来:

  • pyproject.toml(项目元数据 + 依赖声明,官方标准格式)
  • poetry.lock / uv.lock(锁文件:hash 级可复现)
  • 自动建环境、自动管理 __init__、一键构建上传 PyPI
poetry install      # 一条命令:建环境 + 装依赖
poetry add flask    # 声明式加依赖,同步锁文件

2026 年趋势:uv(Rust 实现)速度迅猛、一口吃掉 pip/venv/pyenv 多家功能,社区热度第一。备选学习不亏。

7.4 学习路径建议(别焦虑)

现在:venv + pip + requirements.txt   ← 基础功,本教程已备齐
做 AI 时:加学 conda
写正式库 / 团队工程时:上 poetry 或 uv

工具再多,隔离思想只有一套:环境跟项目走、清单记录真相、锁文件保证复现。基础功扎实,任何新工具都只是把这套思想自动化得更好。

7.5 动手改

  1. pip freeze 与手写两行 flask>=3.0 对比,体会「平铺 vs 声明式」差别(第 8 章会再练)
  2. 装了 conda 的同学 conda env list,看它同样是一条明确「环境列表」命令
  3. 浏览 poetry 官网项目页,看 pyproject.toml 长什么样(不求会写)

7.6 小结

  • venv 内置默认;conda 胜在跨语言包;poetry/uv 胜在锁定与发布
  • uv 是 2026 年社区第一热度,未来与 venv 知识互通
  • 思想不变:隔离 · 清单 · 锁定——工具再变你不是新手

下一章:实战:Flask 项目从零搭环境 🐸

📥 下载本章代码

ZIP 内含本章全部代码文件与说明,解压即用,与教程内容同步生成。