像诗歌一样优雅地打 PyPi 包——poetry¶
前言¶
当我们在
py
中经常复用一些方法时,我们会把它封装为一个模块,或者把它给开个服务等类似功能。但总有一些或多或少的限制和不便,这时候将常用功能给打成PyPi
包并发布就显得十分重要。
poetry
能够像本站点的 mkdocs
一样简便,可以让我们不用理会如何新建、构建和发包的过程(虽说这也很简单),只需专注地开发自己的功能即可,极大地解放了我们的双手。
1. 前提准备¶
poetry
的使用非常的简单,只需要查看官网的基本用法的部分即可
poetry
打 PyPi
包前准备如下:
- poetry 官网地址
- poetry github 地址
- 使用
python
虚拟环境,自行配置,pipenv
,virtualenv-wrapper
,或者poetry
自带的更方便等等都不限制
2. 操作步骤¶
poetry
的打包和发包过程非常的简单,大致分为初始化(创建)项目
,添加依赖
和打包并发包
这三大步。
2.1. 初始化项目¶
如果当前还没有创建项目,可以使用如下命令新建项目:
如果已经存在项目,可以使用如下命令:
然后,它会让你输入包名称、版本号等信息,你可以选择输入,也可以选择按下 ENTER
键使用默认值,后期再修改 pyproject.toml
文件。
2.2. 添加依赖¶
安装依赖包,此步骤会添加依赖包所依赖的所有包,比较方便。命令如下:
还可以,通过添加配置参数
–dev
来区分不同环境下的依赖包。
poetry
的部分命令已发生变化,若遇到问题请查看本文参看文档中的官网说明:官网说明
- 当添加依赖时指定为开发环境,会写到 `pyproject.toml` 中的 `[tool.poetry.dev-dependencies]` 区域
+ 当添加依赖时指定为开发环境,会写到 `pyproject.toml` 中的 `[tool.poetry.group.dev.dependencies]` 区域
# 在开发环境中添加依赖,不会在生产环境中安装此依赖,方便开发调试。
- poetry add pytest --dev
+ poetry add pytest -G dev
如果存在
poetry.lock
文件,直接根据poetry.lock
文件安装依赖包。可以使用install
命令直接解析并安装pyproject.toml
的依赖包。
2.3. 打包并发包¶
如果编写完成项目后,可以构建项目为
py
包,就可以根据build
的文件来安装此包了。命令如下:
想要更多人来方便地安装此包,则需要将此包发布到
PyPi
上,命令如下:
3. 其它使用场景¶
3.1. 版本管理¶
poetry
在项目版本管理中的应用:
如果您想要修改项目的版本号,可以使用 poetry version
命令。这个命令接受一个参数,可以是一个新的版本号,也可以是一个修饰符(major
, minor
, patch
或 pre
)。例如:
poetry version 1.2.3
将会把版本号设置为1.2.3
poetry version patch
将会把版本号增加一个补丁级别(比如从1.2.3
变成1.2.4
)poetry version minor
将会把版本号增加一个次要级别(比如从1.2.3
变成1.3.0
)poetry version major
将会把版本号增加一个主要级别(比如从1.2.3
变成2.0.0
)poetry version prerelease
将会把版本号增加一个预发布标识(比如从1.2.3
变成1.2.4-alpha
)
请注意,poetry version
命令只会修改 pyproject.toml
文件中的版本号,不会修改任何其他文件或元数据。
4. 参考文章¶
更多更详细的配置,请参考官网文章和下面的参考文章