官方发布教程

参考Packaging Python Projects — Python Packaging User Guide

按照步骤一步一步来做,就可以顺利将软件包发布到官方的测试仓库中了。

这里提几个细节吧:

  • twine是发布软件包的工具,可以通过–repository参数指定要发布到哪一个软件包。testpypi是官方的一个测试发布站点,可供发布测试。
  • testpypi之类的应该是twine本身就认识的软件仓库,如果要使用自己的软件仓库,需要在~/.pypirc中提前设置,可以参考下面的发布到gitea的例子。
  • pip安装的时候也可以通过–index-url来指定从哪一个仓库安装。

发布到Gitea

Gitea的强大之处就在于,内置了软件包管理的功能(虽然现在感觉并不能说很直观好用)。进入到个人信息界面,就可以看到“软件包”选项卡,点击就可以看到所有自己发布的软件包了。

Gitea的规矩是,任何软件包必须属于一个组织或者用户,因此软件包仓库也是通过组织和用户隔离的。要想发布到Gitea,可以参考官方文档教程PyPI Packages Repository - Docs (gitea.io)。这里大概再做一个总结。

首先,建立~/.pypirc文件,填入以下内容:

[distutils]
index-servers = gitea

[gitea]
repository = https://gitea.example.com/api/packages/{owner}/pypi
username = {username}
password = {password}

让twine认得我们自定义的仓库。记得将上述模板中的url、owner等改成自己的。

然后可以使用twine发布:twine upload --repository gitea dist/*

可以在如下地方找到自己发布的软件包:

image-20221207130434376之后

可以在软件包中设置,链接到对应的项目:

image-20221207130518653