文章列表
2 分钟阅读

Poetry 与 uv 对比:Python 项目管理怎么选


系列:开发环境管理

第 7 / 10 篇

  1. nvm 安装和使用教程
  2. uv 安装和使用教程
  3. pip 源的设置和使用
  4. uv 进阶:脚本、工作区与工具链实战
  5. pyenv 安装与使用指南
  6. pnpm 安装与使用指南
  7. Poetry 与 uv 对比:Python 项目管理怎么选
  8. direnv 使用指南:按目录自动加载环境变量
  9. Ruff 安装与使用指南
  10. GitHub CLI 使用指南:从 issue 到 PR 的命令行工作流

Python 项目管理以前常见组合是 pip + venv + requirements.txt,后来 Poetry 流行起来,现在 uv 又把速度和工具链统一性拉高了。怎么选,主要看项目阶段。

Poetry 适合什么

Poetry 的优势是成熟,尤其适合需要发布 Python 包的项目:

Terminal window
poetry init
poetry add requests
poetry run pytest
poetry build

它的 pyproject.toml 体验比较完整,发布到 PyPI 的流程也顺。缺点是依赖解析和安装速度不算快,虚拟环境位置和团队习惯也需要统一。

uv 适合什么

uv 的重点是快和统一。它把 Python 安装、虚拟环境、依赖、锁文件、工具运行放到一套命令里。入门可以看 uv 安装和使用教程,进阶可以看 uv 进阶:脚本、工作区与工具链实战

Terminal window
uv init
uv add requests
uv run pytest
uv sync --frozen

如果你在 CI 里经常被依赖安装拖慢,uv 的改善会很明显。

怎么迁移

不要为了换工具一次性改所有项目。更稳的方式是先选一个小项目试:

Terminal window
uv lock
uv sync

如果项目已经用 Poetry 发布包,可以先保留 Poetry 发布流程,只把本地开发和 CI 安装切到 uv。等团队稳定后再决定是否完全迁移。

常见问题

Poetry 不是过时工具。它仍然适合库项目和稳定团队。uv 也不是银弹,它变化更快,团队要接受工具升级带来的调整。

如果只是安装慢,先配置 pip 源的设置和使用 也能解决一部分问题。

总结

新应用项目我会优先选 uv;要发布 Python 包、团队已经熟悉 Poetry,就继续用 Poetry。真正重要的是锁文件、可复现环境和 CI 一致性,而不是工具名字。参考 Poetry 文档uv 文档