主要观点:作者通过更新 Python 项目设置知识,介绍了poetry
在项目依赖管理中的使用,包括安装、配置、添加依赖等,并对比了与传统方式的差异,还提及了uv
以及相关注意事项。
关键信息:
- 安装
poetry
需先安装pipx
,通过pipx install poetry
,安装后要将pipx
的bin
路径添加到$PATH
环境变量中,以使其可在 shell 中使用,同时还可设置 shell 自动补全。 - 对已有项目迁移到
poetry
,需使用poetry init
初始化配置,可交互式选择添加依赖,设置版本等,若不指定版本会出现选择列表。初始化时可能会出现要求设置默认 keyring 密码的弹窗,可通过设置环境变量或设置密码为空来处理。 - 可设置
virtualenvs.in-project
为true
,让poetry
在项目目录内创建虚拟环境,默认poetry
的虚拟环境在~/.cache/pypoetry/virtualenvs
下。 - 默认
poetry
假设将项目作为包提供在 PyPi 上,若只在应用中使用 PyPi 包,需设置package-mode = false
。 - 运行
poetry install
可安装上游依赖并生成poetry.lock
文件,确保依赖版本可重现。 - 使用
poetry add
可方便添加新包,避免手动更新pyproject.toml
文件出错。
重要细节: - 示例中创建了名为
poetry-test
的项目,展示了pyproject.toml
的结构及添加Django
和pytest
依赖的过程。 - 提到传统项目设置流程,如创建虚拟环境、安装依赖、维护不同用途的 requirements 文件等。
- 作者认为
poetry
的主要优势在于改进的依赖管理,避免升级 Python 版本时陷入依赖地狱,且工具配置集中在pyproject.toml
文件中,添加依赖更方便。最后作者表示要开始将 legacy Python 项目迁移到poetry
。
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。