Python 世界的环境管理工具太多——pip、virtualenv、pipenv、poetry、conda、mamba、rye、uv、pixi、hatch……哪个最适合现在(2026 年)用?简单结论:大多数项目 uv,AI/CUDA 项目考虑 pixi 或 conda。
对比表
| 工具 | 环境管理 | 包管理 | 速度 | 主要适用 | 现状 |
|---|---|---|---|---|---|
| uv | ✅ | ✅ | 🚀 最快 | 大多数 Python 项目 | 活跃、事实标准 |
| pixi | ✅ | ✅ | 🚀 很快 | AI/CUDA/科学计算 | 新兴,快速崛起 |
| conda | ✅ | ✅ | 慢 | AI、科学计算 | 稳定但笨重 |
| mamba | ✅ | ✅ | 快 | conda 生态替代 | 活跃 |
| poetry | ✅ | ✅ | 中 | 库/应用打包 | 成熟,用户多 |
| pipenv | ✅ | ✅ | 慢 | 老项目 | 维护缓慢 |
| rye | ✅ | ✅ | 快 | 曾是首选 | 已合并入 uv |
| hatch | ✅ | ✅ | 快 | 多环境测试 | 小众 |
| pip + venv | ✅ | ✅ | 慢 | 兜底 | 官方最基础方案 |
uv:默认选它
uv 是 Astral(写 Ruff 的那家)用 Rust 实现的一体化工具,把这些的能力都整合了:
pyenv(Python 版本管理)virtualenv(虚拟环境)pip(包管理)pip-tools(依赖锁定)pipx(全局工具)
日常操作:
uv init # 初始化项目
uv python install 3.11 # 装 Python 3.11
uv add requests # 加依赖
uv add --dev pytest # 开发依赖
uv sync # 同步依赖到 .venv
uv run main.py # 用项目环境跑
uv tool install ruff # 全局装工具(类似 pipx)
速度上,pip 装 20 个包要 30 秒,uv 通常 2-3 秒。CI 尤其明显。
什么时候不用 uv
CUDA 依赖复杂 + 遇到 wheel 找不到:
比如:
- Windows 上装 triton — 直接没轮子(见 uv 依赖冲突)
- OpenCV 特殊构建(Contrib、GPU)
- CUDA 版本要精确匹配 PyTorch
- Intel MKL / Nvidia cuDNN 直接依赖
这些场景conda / pixi 生态里有预编译好的二进制,uv 从 PyPI 拿不到就得自己编译(往往编不过)。
Pixi:AI 项目的新选择
Pixi 由 conda 生态团队做的下一代工具——Rust 实现,速度接近 uv,能力接近 conda:
pixi init
pixi add python=3.11 pytorch=2.4
pixi add opencv # 自动解决 cuda / mkl
pixi run python main.py
优势:
- 兼容 conda-forge 生态(大量预编译二进制)
- 自动解 CUDA / MKL / OpenCV 类非 Python 依赖
- 支持多语言(Python、Rust、C++、Julia)
- 速度快,比 conda 快得多
已经有相当多 AI 开发者从 conda 迁移到 pixi。
Conda / Mamba:老牌 AI 首选
conda 的最大优势是 conda-forge 里几十万个预编译二进制包——包括 CUDA、cuDNN、MKL、OpenCV、FFmpeg 等 Python 生态之外的东西。
问题:
- 解依赖巨慢(几分钟起步)
- 环境臃肿(一个 base 就几个 G)
- 私有仓库通常不支持
Mamba 是 conda 的兼容替代,速度快 10 倍,用法一样:
mamba install pytorch cudatoolkit=11.8
mamba env create -f environment.yml
新项目直接上 pixi,比 conda + mamba 都简单。
Poetry:库开发
写 Python 库、要发 PyPI,poetry 还是很好的选择:
poetry init
poetry add requests
poetry publish
优势:
- 强项在依赖锁定 + 发布 wheel
pyproject.toml规范- 依赖冲突处理清晰
uv 现在也能做发布(uv build + uv publish),但生态积累不如 poetry。
Rye 呢
Rye 之前是 Astral 主推的项目,2024 年宣布功能合并到 uv,Rye 只维护不新增。已经用 Rye 的可以直接迁到 uv,语法几乎一样。
场景推荐
| 场景 | 首选 | 备选 |
|---|---|---|
| Web / 脚本 / 日常开发 | uv | poetry |
| 库开发 + 发 PyPI | uv | poetry |
| YOLO / PyTorch / LLM 训练 | uv(先试) | pixi / mamba |
| 科学计算 + CUDA + MKL | pixi | mamba |
| 老项目改造 | 保持原有工具 | 逐步迁 uv |
| CI 加速 | uv |
uv 装全局工具
uv 不太强调”全局环境”,但支持全局工具(类似 pipx):
uv tool install ruff
uv tool install pre-commit
uv tool install pyinstaller
uv tool list
uv tool upgrade ruff
uv tool uninstall ruff
装完直接命令行可用。想真的用一个全局 Python 解释器写脚本,可以:
uv python install 3.11
uv run --python 3.11 script.py
一句话总结
默认 uv,CUDA 复杂就上 pixi。conda/mamba 老 AI 项目继续维护,poetry 专注库发布。Rye 已经并入 uv,不用再学。
