迁移到 PyPI.org

页面状态

已废弃

pypi.org 是 PyPI 的新版本,它经过重写并已取代旧版 PyPI 代码库。它是人们预期会使用的默认 PyPI 版本。以下是人们与 PyPI.org 交互所需的工具和流程。

发布版本

pypi.org 自 2016 年 9 月起成为默认的上传平台。

通过 pypi.python.org 的上传已于 2017 年 7 月 3 日 关闭。截至 2018 年 4 月 13 日,pypi.org 是 PyPI 的 URL。

迁移到 PyPI.org 进行上传的推荐方法是确保您使用的上传工具版本足够新。

默认上传设置在以下版本中切换到 pypi.org

  • twine 1.8.0

  • setuptools 27.0.0

  • Python 2.7.13(distutils 更新)

  • Python 3.4.6(distutils 更新)

  • Python 3.5.3(distutils 更新)

  • Python 3.6.0(distutils 更新)

除了确保您的工具版本足够新以切换到工具的默认设置外,您还必须确保未将工具配置为覆盖其默认上传 URL。通常这配置在 $HOME/.pypirc 文件中。如果您看到类似以下的文件

[distutils]
index-servers =
    pypi

[pypi]
repository = https://pypi.python.org/pypi
username = <your PyPI username>
password = <your PyPI username>

那么只需删除以 repository 开头的行,您将使用上传工具的默认 URL。

如果由于某种原因您无法将工具升级到默认使用 PyPI.org 的版本,那么您可以编辑 $HOME/.pypirc 并包含 repository: 行,但使用值 https://upload.pypi.org/legacy/

[distutils]
index-servers =
    pypi

[pypi]
repository = https://upload.pypi.org/legacy/
username = <your PyPI username>
password = <your PyPI password>

(此 URL 中的 legacy 指的是这是新服务器实现对旧服务器实现上传 API 的仿真。)

有关更多详细信息,请参阅 .pypirc规范

注册包名和元数据

在第一次上传之前,不再需要使用 setup.py register 命令进行包名的显式预注册,并且 PyPI.org 上的旧版上传 API 仿真目前不支持此功能。

因此,在切换到使用 PyPI.org 进行上传后,尝试显式注册将显示以下错误消息

Server response (410): This API is no longer supported, instead simply upload the file.

解决方案是跳过注册步骤,直接进行构件上传。

使用 TestPyPI

旧版 TestPyPI (testpypi.python.org) 不再可用;请改用 test.pypi.org。如果您使用 TestPyPI,您必须更新您的 $HOME/.pypirc 以处理 TestPyPI 的新位置,通过将 https://testpypi.python.org/pypi 替换为 https://test.pypi.org/legacy/,例如

[distutils]
index-servers=
    pypi
    testpypi

[testpypi]
repository = https://test.pypi.org/legacy/
username = <your TestPyPI username>
password = <your TestPyPI password>

有关更多详细信息,请参阅 .pypirc规范

注册新用户账户

为了帮助减轻针对 PyPI 的垃圾邮件攻击,通过 pypi.python.org 的新用户注册已于 2018 年 2 月 20 日 关闭pypi.org 上的新用户注册是开放的。

浏览包

虽然 pypi.python.org 仍然可能用于其他 PyPA 文档中的链接等,但浏览包的默认界面是 pypi.org。pypi.python.org 域现在重定向到 pypi.org,并可能在将来某个时候被禁用。

下载包

pypi.org 是下载包的默认主机。

管理已发布的包和版本

pypi.org 为登录用户提供了一个功能齐全的界面,用于管理他们发布的包和版本。