如何在Ubuntu 22.04上使用Poetry将Python包发布到PyPI
引言
诗歌是一个用于Python的依赖管理器,它还能够构建和打包Python项目以供分发。PyPI是官方的Python包上传和下载仓库,在本教程中将使用它。它是Python包的官方第三方来源,由Python软件基金会运营。在PyPI上发布您的包使其公开可供自己或任何其他人安装。
在本教程中,您将创建一个PyPI帐户,通过设置令牌身份验证与您的帐户连接,以便在Poetry中使用。然后您将构建并发布您的打包项目到PyPI上。这还将使您能够将您发布的软件包作为其他Python项目的依赖项添加进去。
先决条件
- An Ubuntu 22.04 server, set up according to our initial server setup guide for Ubuntu 22.04, with a non-root user with sudo privileges and a firewall enabled.
- The latest version of Python 3 installed on your machine following Step 1 of how to install Python 3 and set up a programming environment on an Ubuntu 22.04 server.
- Poetry installed on your system, following this guide on how to install Poetry to manage Python dependencies on Ubuntu 22.04.
第一步 – 创建一个 PyPI 账户
为了将软件包发布到PyPI,您需要创建一个账户。打开您的网络浏览器并访问官方注册页面。
接下来,您需要启用令牌身份验证,以便在Poetry中安全使用您的PyPI凭证。
第二步-为PyPI启用令牌身份验证
在命令行中使用PyPI帐户的推荐方式是令牌验证。您可以使用单个自动生成的令牌代替用户名和密码。令牌可以随时添加、撤销或授予对帐户的特定访问权限。这使得令牌更加安全,并避免了密码被泄露的风险。您需要通过导航到帐户设置来为您的帐户创建一个新的API令牌。
向下滚动直到您达到“API令牌”部分。点击“添加API令牌”。
在接下来的页面上,你可以给你的代币命名。本教程将其命名为”诗歌”,但你可以随意选择任何你喜欢的名字。
一旦您的令牌创建成功,重要的是将其复制,因为令牌只会显示一次。这是使用允许您根据需要生成新令牌的API令牌常见做法,所以请在继续之前记下您的令牌。
现在,您将使用此令牌在Poetry中配置您的凭据,以准备发布。不要再将API令牌附加到Poetry中所需的每个命令中,而是只需使用Poetry的config命令进行一次操作即可。
请使用以下命令将API令牌添加到Poetry中:
- poetry config pypi-token.pypi your-api-token
添加您的API令牌作为您的凭据后,Poetry将会通知您,您的凭据已存储在一个明文文件中。如果您在使用传统的用户名和密码作为凭据,则这可能会成为一个问题。鉴于令牌可以轻松删除和更新,同时令牌也是随机生成并且唯一对应于单个用例,这使得在此处存储令牌成为了方便的安全折衷。或者,您可以选择为每个命令手动输入您的API令牌。
有了这个,你就可以开始构建并发布你的项目了。
第三步 — 构建你的项目
构建项目就是打包项目,这是在发布前必须进行的步骤。要构建你的项目,请输入以下内容:
poetry build
Building sammy-poetry (0.1.0) – Building sdist – Built sammy-poetry-0.1.0.tar.gz – Building wheel – Built sammy_poetry-0.1.0-py3-none-any.whl
将输出两个文件。第一个是源文件(sdist),输出为tar.gz文件。第二个是编译后的包(wheel),输出为.whl文件。有了这些文件,你现在可以将你的Python包发布到PyPI了。
第四步-将您的Python软件包发布到PyPI
PyPI是Poetry的默认发布目标。 如果您的身份验证API令牌已经准备就绪,您的发布命令将无需再包含凭据。
要发布您已编译的软件包,请输入以下内容:
poetry publish
Publishing sammy-poetry (0.1.0) to PyPI – Uploading sammy-poetry-0.1.0.tar.gz 100% – Uploading sammy_poetry-0.1.0-py3-none-any.whl 100%
现在您可以检查您发布的包了。在浏览器中打开您的PyPI项目。
你的软件包已发布,并已在PyPI上公开可用,同时也可以通过Poetry作为依赖项使用。你可以将自己发布的软件包添加为其他Python项目的依赖项。
Note
poetry publish –build
根据你的项目成熟度和工作流程,这样做可能更加高效。
结论是
在这个教程中,您使用Poetry来进行构建和发布。您创建了一个PyPI帐户,在Poetry中设置了API令牌验证,然后在发布之前编译了您的项目。您的软件包可以作为公共依赖项使用,甚至可以通过Poetry包含为依赖项。
接下来,您可能想通过查看我们的Python编程教程系列《如何使用Python编码》来深入了解Python。