搜索你想找的开源项目

输入名称、用途或关键词,也可粘贴 GitHub 仓库链接

分享到微信

当前解读页的微信分享二维码

用微信扫一扫打开,点击右上角「···」分享给朋友或朋友圈。

手机上可截屏后,在微信扫一扫中从相册识别二维码。

python-poetry/poetry

开发工具

在单个 pyproject.toml 中声明、解析、锁定并安装 Python 依赖,并构建和发布包。

34,429
2,584
Python
MIT
创建于 8 年前

项目介绍

Poetry 负责 Python 项目的依赖管理和打包。它不再把配置分散在 setup.py、requirements.txt、setup.cfg、MANIFEST.in 和 Pipfile,而是把项目元数据和依赖集中写进一个 pyproject.toml,由 Poetry 解析依赖图、生成锁文件、安装可复现的环境,并构建或发布分发包。适合希望用一套工具完成依赖解析与包元数据管理的 Python 应用和库维护者。

README 展示了 PEP 621 风格的 [project] 段和 Poetry 的扩展写法:用依赖组区分 dev、docs、lint 工具,支持可选组、可选依赖,以及 cleo @ git+https://github.com/python-poetry/cleo.git@main 这类直接指向 git 的依赖 配置示例。

快速开始

官方安装脚本位于 install.python-poetry.org;README 指向那里获取基础脚本,高级脚本用法、其他安装方式和 CI 实践则见安装文档 安装说明。

一个典型的新项目流程:

poetry new my-package
cd my-package
poetry add requests
poetry install

之后 poetry add 会更新 pyproject.toml 和锁文件,poetry install 创建或同步环境。安装器的具体参数和平台差异见安装文档,命令参考、依赖写法和发布流程见官方文档。

示例 pyproject.toml 还演示了如何用 [project.scripts] 声明命令行脚本,用 [project.optional-dependencies] 声明可选依赖,并通过 poetry install -E <extra> 安装对应的 extra。

使用约束

示例中的构建后端要求为 poetry-core>=2.0.0,<3.0.0,项目元数据使用标准 [project] 字段。Poetry 同时识别自己的 [tool.poetry] 键,两种写法混用时要保持一致。依赖组可以标为可选,只有显式请求时才安装,例如 poetry install --with docs。需要导出 requirements.txt 的项目应使用独立的 poetry-plugin-export,核心并不内置该功能 相关项目。

项目采用 MIT 许可证,本身用 Python 编写,兼容的 Python 版本由它自己的版本约束决定。README 没有列全所有运行或 CI 要求,应以安装文档为准。

HotRepo 点评

Poetry 长期是 Python 依赖管理讨论中的参照物:2019 年的 v1.0 讨论有大量评论,2023 年的讨论仍在把它与 pip-tools 等方案比较 2023 年讨论。该讨论中,有用户表示 Poetry 在大约 v1.2.x 之前不太稳定,但「since v1.5.x it's been superb」评论;也有用户更偏好 pip-tools,因为它兼容标准 venv,不必在开发和生产环境里都安装 Poetry 评论;回复指出 Poetry 可以导出一份 requirements.txt 供 Docker 镜像使用 回复。这些是个人体验,不是实测结论。站内记录显示,2026-11-06 当天该项目在 Python 日榜上新增 129 星、位列第 6,当时约有 3.4 万星。

本文由 AI 根据项目 README 生成,更新于 ,以项目官方文档为准。

Hacker News 讨论

Poetry – Dependency Management for Python – v1.0
▲ 129 · 73 条评论 · 2019年12月13日
Poetry v1.0
▲ 73 · 1 条评论 · 2019年12月13日
Poetry: Python dependency management and packaging made easy
▲ 56 · 2 条评论 · 2019年12月13日