系列:开发环境管理
- nvm 安装和使用教程
- uv 安装和使用教程
- pip 源的设置和使用
- uv 进阶:脚本、工作区与工具链实战
- pyenv 安装与使用指南
- pnpm 安装与使用指南
- Poetry 与 uv 对比:Python 项目管理怎么选
- direnv 使用指南:按目录自动加载环境变量
- Ruff 安装与使用指南
- GitHub CLI 使用指南:从 issue 到 PR 的命令行工作流
Python 项目管理以前常见组合是 pip + venv + requirements.txt,后来 Poetry 流行起来,现在 uv 又把速度和工具链统一性拉高了。怎么选,主要看项目阶段。
Poetry 适合什么
Poetry 的优势是成熟,尤其适合需要发布 Python 包的项目:
poetry initpoetry add requestspoetry run pytestpoetry build它的 pyproject.toml 体验比较完整,发布到 PyPI 的流程也顺。缺点是依赖解析和安装速度不算快,虚拟环境位置和团队习惯也需要统一。
uv 适合什么
uv 的重点是快和统一。它把 Python 安装、虚拟环境、依赖、锁文件、工具运行放到一套命令里。入门可以看 uv 安装和使用教程,进阶可以看 uv 进阶:脚本、工作区与工具链实战。
uv inituv add requestsuv run pytestuv sync --frozen如果你在 CI 里经常被依赖安装拖慢,uv 的改善会很明显。
怎么迁移
不要为了换工具一次性改所有项目。更稳的方式是先选一个小项目试:
uv lockuv sync如果项目已经用 Poetry 发布包,可以先保留 Poetry 发布流程,只把本地开发和 CI 安装切到 uv。等团队稳定后再决定是否完全迁移。
常见问题
Poetry 不是过时工具。它仍然适合库项目和稳定团队。uv 也不是银弹,它变化更快,团队要接受工具升级带来的调整。
如果只是安装慢,先配置 pip 源的设置和使用 也能解决一部分问题。
总结
新应用项目我会优先选 uv;要发布 Python 包、团队已经熟悉 Poetry,就继续用 Poetry。真正重要的是锁文件、可复现环境和 CI 一致性,而不是工具名字。参考 Poetry 文档 和 uv 文档。