当初学习 java Maven, 感觉非常太强大了, 集jar包依赖、项目创建、项目发布于一身。 在Python中一直没有找到和Maven对应的工具, pip + requirements.txt 仅仅能解决项目中包依赖的问题, 因为没有一个标准的项目模板, python的项目创建很随性, 另外, python项目打包过程也很麻烦.
poetry 项目能很好解决上面的各个痛点:
使用 pyproject.toml 管理项目的依赖, toml 文件中可以设置不同的group, 比如 test/dev/prod 等
可以在 pyproject.toml 中定义 pypi index 服务器
可以在 pyproject.toml 中增加项目的meta信息, 比如name/version/description/license等
可以在 pyproject.toml 中定义安装后自动执行的脚本
使用 poetry.lock 来锁定依赖包的版本
new 命令创建新项目
init 命令创建 pyproject.toml 文件
install 命令自动安装 pyproject.toml 中定义的依赖包
build 命令编译并创建 wheels 包
publish 命令向 pypi repository 上传项目包