5

我想将包上传到 pypi.org,如迁移到 PyPI.org文档中所述,但 Twine 上传到https://upload.pypi.org/legacy/.

它在pypi.python.org/pypi/mypolr上可用,但在pypi.org上找不到。

我尝试阅读其他几个问题、教程和指南。

我的 pip.ini 文件(我在 Windows 10 上)如下所示:

[distutils]
index-servers =
    pypi

[pypi]

我没有存储我的用户名或密码,因此 [pypi] 部分为空(如迁移文档中所述)。

我已将 .ini 文件放在我的用户文件夹中,并确认(根据此答案)它实际上正在使用我设置的文件(使用环境变量PIP_CONFIG_FILE)。

害怕我做错了什么,我也尝试不使用 pip.ini 文件来让 Twine 使用它的默认值。

我正在使用 Python 3.6.3(来自 Anaconda),我的工具版本是:

  • Twine 1.9.1(迁移文档说它应该是 1.8+)
  • setuptools 38.2.3(迁移文档说它应该是 27+)

不管它是否相关,这里有更多信息:

  • 链接到我的setup.py
  • setup进口自setuptools而不是distutils.core
  • README.rst用作long description,但在PyPi 页面中仅显示标题的前 8 个星号。(比较这个这个
  • 我上传的包版本是 0.2.1(在发布时)
  • setuptools_scm用于从 git 标签中获取版本
  • 构建是用python setup.py sdist bdist_wheel

请让我知道是否有任何其他信息可能有助于解决这个问题。

4

2 回答 2

7

你似乎做的一切都是正确的。Twine 不是通过旧版 PyPI ( https://pypi.python.org ) 上传的。它正在通过原始的(迄今为止仅)PyPI API 上传到新的 PyPI(https://pypi.org,又名“仓库”),而这个 API 恰好被命名为“legacy”。

此外,您的包位于https://pypi.org/project/mypolr/的 Warehouse 上;仓库搜索显然还没有准备好生产。

于 2017-11-30T23:17:30.040 回答
3

Warehouse 的文档解释了这个令人困惑的命名法。以下引用来自首页和有关Legacy API的页面:

Warehouse 是一个实现规范Python 包索引(存储库)的Web 应用程序;它的生产部署是PyPI。它取代了支持 pypi.python.org 的旧代码库。

旧版 API

“旧版 API” 提供与pypi-legacy 相同的功能,因此称为“旧版”。

...

上传 API

在 upload.pypi.org/legacy/ 上提供的 API 端点是 Warehouse 对旧版 PyPI 上传 API 的模拟。这是twinedistutils等工具用于将分发上传到 PyPI的端点。

换句话说,据我了解:

  • PyPI 曾经是托管在 pypi.python.org 上的 Web 应用程序。不再运行的旧应用程序现在被称为pypi-legacy
  • PyPI 现在是托管在 pypi.org 上的 Web 应用程序。这个新应用程序名为Warehouse。旧的 pypi.python.org 现在只是重定向到 pypi.org。
  • 除了一些新的端点之外,Warehouse还公开了几个pypi-legacy曾经拥有的 API 端点。因为这些端点是从pypi-legacy复制过来的,所以它们统称为“旧版 API”。
  • 除此之外,Warehouse的 Legacy API 中的上传端点是从 URL 路径提供的,这种命名选择再次反映了它是pypi-legacy/legacy中用于上传的端点的(部分)重新实现这一事实。

这一切似乎比它需要的更令人困惑,但它就是这样。

于 2019-12-24T18:05:50.360 回答