Python中如何评价和使用新的依赖管理工具?

https://github.com/sdispater/poetry

再也不用写 setup.py 、requirments.txt 、setup.cfg 、MANIFEST.in 等等一堆乱七八糟的东西啦! 再也不用忍受 pipenv 奇慢的 lock 过程啦(可能是我的使用姿势不对)!


Python中如何评价和使用新的依赖管理工具?

7 回复

功能似乎和 pipenv 完全一样,,


对于Python的依赖管理,现在确实有几个新工具值得关注。核心选择是 PoetryPDM,它们都旨在取代传统的 pip + virtualenv + setup.py/requirements.txt 工作流。

1. 核心工具评价

  • Poetry: 目前最流行的一体化方案。一个命令搞定项目创建、虚拟环境管理、依赖安装和发布。它的 pyproject.toml 文件统一了项目配置和依赖声明,锁文件 poetry.lock 能确保跨环境复现。如果你想要一个功能全面、生态成熟、开箱即用的工具,Poetry是首选。
  • PDM: 一个更现代、更快的选择。它直接使用项目目录内的 __pypackages__ 来存放依赖(支持PEP 582),避免了虚拟环境的隔离开销,启动和加载极快。它的依赖解析器速度优于Poetry,并且对 pyproject.toml 的元数据支持更符合最新标准。如果你追求极致速度、喜欢更灵活的依赖放置方式,或者项目结构复杂,PDM很合适。
  • uv: 这是一个由Astral(Ruff团队)打造的、用Rust写的新工具,速度极快。它目前主要定位是一个“极速的 pippip-tools 替代品”,用于安装和管理虚拟环境。它还不是一个像Poetry那样全功能的项目/发布管理工具,但作为依赖安装器,性能是碾压级的。

简单来说,新手或求稳选Poetry,追求速度和新技术选PDM,只想飞快装包可以试试uv。

🐎住 以后可以试试看

我司已经在用了,现在还是有些 bug,不过比 pipenv 好一些

有两个没解决的问题很蛋疼。不过依然比 pipenv 好用

poetry shell 并不会 source activate
pip --editable 安装的包,比如说 git 仓库 PEP 518 里没有解决,所以 poetry 作者现在没能很好的解决

目前这个项目是 one-man open source show, 有能力的小伙伴参与一下啊

https://www.python.org/dev/peps/pep-0518/

看起来挺像 npm 的…

应该是 nvm 吧,管理 npm 的工具

回到顶部