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 动手改
pip freeze与手写两行flask>=3.0对比,体会「平铺 vs 声明式」差别(第 8 章会再练)- 装了 conda 的同学
conda env list,看它同样是一条明确「环境列表」命令 - 浏览 poetry 官网项目页,看
pyproject.toml长什么样(不求会写)
7.6 小结
- venv 内置默认;conda 胜在跨语言包;poetry/uv 胜在锁定与发布
- uv 是 2026 年社区第一热度,未来与 venv 知识互通
- 思想不变:隔离 · 清单 · 锁定——工具再变你不是新手
下一章:实战:Flask 项目从零搭环境 🐸