Poetry 是一个用于Python的依赖管理和打包工具,它通过一个pyproject.toml文件来管理项目依赖,简化了依赖管理的过程。Poetry 旨在解决传统工具(如pip和virtualenv)在依赖管理上的一些常见问题,提供了一个更现代、更易于使用的解决方案。
我是在看AutoGPT和AdalFlow aka. LightRAG的源码当中发现这个框架,结合源码可以更快的熟悉这个现代化的依赖包管理工具。
主要特点
- 依赖管理:Poetry 自动查找并安装正确的库版本,确保它们能够协同工作。它还负责更新过时的依赖到最新版本。
- 虚拟环境:Poetry 内置了虚拟环境功能,为每个新项目或新依赖创建单独的虚拟环境,以防止库之间的冲突。
- 项目打包:Poetry 可以快速设置新项目的基本结构,项目的所有元数据(如名称、版本、依赖等)都存储在pyproject.toml文件中。它还提供了内置命令,可以更容易地将包发布到PyPI等仓库。
- 命令行界面:Poetry 拥有自己的命令行界面(CLI),可以用于管理依赖(如安装、添加、更新和移除),也可以用于设置、运行和部署项目。
安装 Poetry
Poetry 支持多种操作系统,包括 Linux、Mac 和 Windows。安装命令如下:
curl -sSL https://raw.githubusercontent.com/python-poetry/poetry/master/get-poetry.py | python -
使用 Poetry
- 创建新项目:使用poetry new命令可以快速创建一个带有基本结构和pyproject.toml文件的新项目。
- 添加依赖:使用poetry add <dependency>命令可以添加新依赖,Poetry 会自动找到合适的版本并安装。
- 安装依赖:使用poetry install命令安装项目的所有依赖。
- 更新依赖:使用poetry update命令更新所有可能的依赖。
- 打包项目:使用poetry build命令可以打包项目,生成分发包。
- 发布项目:使用poetry publish命令可以将项目发布到PyPI。
配置文件 pyproject.toml
Poetry 使用pyproject.toml文件来管理项目依赖和配置。这个文件包含了项目所需的所有依赖库及其精确版本。例如:
[tool.poetry]
name = "my-project"
version = "0.1.0"
description = "A short description of your project"
authors = ["Your Name <you@example.com>"]
[tool.poetry.dependencies]
python = "^3.8"
requests = "^2.25.1"
总结
Poetry 是一个强大的工具,它将多个工具整合到一个中,简化了工作流程。它确保所有团队成员使用相同版本的依赖,提供了清晰的命令用于常见任务,减少了依赖冲突和安全问题的风险,并自动管理复杂的依赖关系。通过使用 Poetry,你可以更有效地管理 Python 项目的依赖。