为什么Twine 1.9.1仍在上传到传统的PyPi?

时间:2017-11-30 23:10:05

标签: python pypi twine

我想按照Migrating to 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文件放在我的用户文件夹中,并确认(per this answer)它实际上正在使用我设置的那个(使用环境变量{{ 1}})。

我担心自己出错了,我也试过没有pip.ini文件让Twine使用默认值。

我使用的是Python 3.6.3(来自Anaconda)和我的工具'版本是:

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

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

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

如果有任何其他信息可用于解决此问题,请与我们联系。

2 个答案:

答案 0 :(得分:4)

您似乎正在做所有事情。 Twine不通过旧版PyPI(https://pypi.python.org)上传。它通过原始(目前为止)唯一的PyPI API上传到新的PyPI(https://pypi.org,a.k.a。“Warehouse”),而这个API恰好被命名为“legacy”。

此外,您的包裹位于仓库https://pypi.org/project/mypolr/;仓库搜索显然不是生产就绪的。

答案 1 :(得分:0)

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

  

仓库是一种web application,它实现了规范的Python package index (repository);其生产部署为PyPI。它取代了为pypi.python.org提供支持的旧代码库。

  

旧版API

     

“旧版API”提供与pypi-legacy的功能奇偶校验,因此称为“旧版”。

     

...

     

上传API

     

在upload.pypi.org/legacy/上提供的API端点是Warehouse对旧版PyPI上传API的模仿。这是twinedistutils之类的工具用于upload distributions to 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路径/legacy提供的,这是一个命名选择,它再次反映出以下事实: )在 pypi-legacy 中重新实现用于上传的端点。

这一切似乎比需要的还令人困惑,但这就是它的本质。