为什么Twine 1.9.1仍然上传到遗留的PyPi?

2024-04-29 01:28:44 发布

您现在位置:Python中文网/ 问答频道 /正文

我要将包上载到pypi.org网站如Migrating to PyPI.org文档中所述,但是Twine会上载到https://upload.pypi.org/legacy/。在

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

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

我的点滴-文件(我在Windows 10上)如下所示:

[distutils]
index-servers =
    pypi

[pypi]

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

我将.ini文件放在我的用户文件夹中,并确认(per this answer)它实际上使用了我设置的文件(使用环境变量PIP_CONFIG_FILE)。在

我怕我做错了什么,我也试过了点滴-文件使绳线使用其默认值。在

我使用的是python3.6.3(来自Anaconda),我的工具版本是:

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

不管是否相关,以下是更多信息:

  • 链接到我的setup.py
  • setup是从setuptools导入的,而不是{}
  • README.rst用作long description,但在PyPi page中,只显示头的前8个星号。(比较this和{a9})
  • 我上传的包的版本是0.2.1(发布时)
  • setuptools_scm用于从git标记获取版本
  • 生成使用python setup.py sdist bdist_wheel

请让我知道,如果有任何其他信息,可能有助于解决这个问题。在


Tags: 文件to文档pyorg版本pypi信息
2条回答

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

Warehouse is a web application that implements the canonical Python package index (repository); its production deployment is PyPI. It replaces an older code base that powered pypi.python.org.

Legacy API

The “Legacy API” provides feature parity with pypi-legacy, hence the term “legacy”.

...

Upload API

The API endpoint served at upload.pypi.org/legacy/ is Warehouse’s emulation of the legacy PyPI upload API. This is the endpoint that tools such as twine and distutils use to upload distributions to PyPI.

换句话说,据我所知:

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

这一切看起来比实际情况更令人困惑,但事实就是如此。在

你似乎每件事都做得对。Twine没有通过旧版PyPI(https://pypi.python.org)上传。它正通过原始的(目前仅限于)PyPI API上传到新的PyPI(https://pypi.org,又称“仓库”),而这个API恰好被命名为“legacy”。在

另外,您的包存在于仓库中的https://pypi.org/project/mypolr/;仓库搜索显然还没有准备好生产。在

相关问题 更多 >