#

本章将介绍如何通过 Poetry 使您的库可安装。

版本控制 #

Poetry 要求所有项目都使用 PEP 440 兼容的版本。

虽然 Poetry 不强制执行任何发布约定,但它曾经鼓励在 PEP 440 的范围内使用 语义版本控制,并支持 版本约束,这些约束特别适合语义版本控制。

注意
例如,1.0.0-hotfix.1PEP 440 不兼容。您可以选择使用 1.0.0-post11.0.0.post1

锁定文件 #

对于您的库,如果您愿意,可以提交 poetry.lock 文件。这可以帮助您的团队始终针对相同的依赖项版本进行测试。但是,此锁定文件不会对依赖它的其他项目产生任何影响。它只对主项目有影响。

如果您不想提交锁定文件并且您正在使用 git,请将其添加到 .gitignore 中。

打包 #

在您实际发布库之前,您需要对其进行打包。

poetry build

此命令将以两种不同的格式打包您的库:sdist 是源代码格式,wheel编译 包。

Poetry 在构建包时会自动包含一些元数据文件。构建 wheel 时,以下文件将包含在 .dist-info 目录中

  • LICENSE
  • LICENSE.*
  • COPYING
  • COPYING.*
  • LICENSES/**

构建 sdist 时,以下文件将包含在根文件夹中

  • LICENSE*

构建完成后,您就可以发布您的库了。

发布到 PyPI #

好的,现在您可以发布包了。

Poetry 默认情况下会发布到 PyPI。发布到 PyPI 的任何内容都可通过 Poetry 自动获取。由于 pendulum 在 PyPI 上,因此我们可以依赖它,而无需指定任何其他仓库。

如果我们想与 Python 社区共享 poetry-demo,我们也会在 PyPI 上发布它。这样做非常容易。

poetry publish

这将打包并将库发布到 PyPI,前提是您是注册用户,并且已 正确配置了您的凭据

注意

publish 命令默认情况下不会执行 build

如果您想一起构建和发布您的包,只需传递 --build 选项。

完成此操作后,您的库将对任何人都可用。

发布到私有仓库 #

有时,您可能希望将您的库保持私密,但也要让您的团队能够访问它。

在这种情况下,您需要使用私有仓库。

为了发布到私有仓库,您需要将其添加到您的全局仓库列表中。有关更多信息,请参阅 添加仓库

完成此操作后,您可以像这样发布到它

poetry publish -r my-repository