为什么Twine 1.9.1仍上传到旧版PyPi?

Tho*_*ger 4 python pypi twine

我想按照“ 迁移到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]
Run Code Online (Sandbox Code Playgroud)

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

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

害怕我出了点问题,因此我也尝试了没有pip.ini文件的情况,以使Twine使用其默认值。

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

  • 麻线1.9.1(迁移文档称应为1.8+)
  • setuptools 38.2.3(迁移文档说应该为27+)

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

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

请让我知道是否还有其他信息可以帮助您解决这一问题。

Mar*_*ery 6

Warehouse 的文档解释了这种令人困惑的术语。下面的引述来自首页和有关Legacy API的页面:

\n\n
\n

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

\n
\n\n

\n\n

\n

旧版 API

\n\n

\xe2\x80\x9cLegacy API\xe2\x80\x9d 提供与pypi-legacy相同的功能,因此术语 \xe2\x80\x9clegacy\xe2\x80\x9d 。

\n\n

...

\n\n

上传API

\n\n

upload.pypi.org/legacy/ 上提供的 API 端点是旧版 PyPI 上传 API 的 Warehouse\xe2\x80\x99s 模拟。这是twinedistutils等工具用来将发行版上传到 PyPI 的端点。

\n
\n\n

换句话说,据我理解:

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

这一切看起来比实际需要的更加令人困惑,但事实就是如此。

\n


jwo*_*der 5

您似乎在正确执行所有操作。绳索不是通过传统的PyPI(上传https://pypi.python.org)。它是通过原始(到目前为止)PyPI API 上传到新的PyPI(https://pypi.org,又名“仓库”)的,而该API恰好被命名为“旧版”。

此外,您的包存在于仓库在https://pypi.org/project/mypolr/ ; 仓库搜索显然不适合生产。