Почему Twine 1.9.1 все еще загружается в устаревшую версию PyPi?

Я хочу загрузить пакеты на 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 descriptionref = "https://pypi.python.org/pypi/mypolr" rel = "noreferrer"> страница PyPi отображаются только первые 8 звездочек заголовка. (Сравните это с это)
  • Пакет, который я загружаю, имеет версию 0.2.1 (на момент публикации)
  • setuptools_scm используется для получения версий из тегов git
  • сборка сделана с python setup.py sdist bdist_wheel

Пожалуйста, дайте мне знать, есть ли какая-либо другая информация, которая может быть полезна для выяснения этого.


person Thomas Fauskanger    schedule 30.11.2017    source источник


Ответы (2)


Похоже, вы все делаете правильно. Twine не загружается через устаревший PyPI (https://pypi.python.org). Он загружается в новый PyPI (https://pypi.org, также известный как «Склад») через оригинал (и т. далеко только) PyPI API, и этот API просто случайно назван "устаревшим".

Кроме того, ваш пакет присутствует на складе по адресу https://pypi.org/project/mypolr/; Обыск склада явно не готов к производству.

person jwodder    schedule 30.11.2017
comment
Вау, это потрясающе, и большое спасибо. Если я правильно понимаю, значит Twine правильно настроен для работы с pypi.org, а просто pypi.org еще не готов. - person Thomas Fauskanger; 01.12.2017
comment
странно, что Twine ЕЩЕ сегодня сообщает мне, что загружается в устаревшую версию, а я могу найти свой пакет (pymcs) в хранилище на pypy.org? Очень запутанно. - person K.-Michael Aye; 24.06.2019
comment
@ K.-MichaelAye: Потому что унаследованный API по-прежнему остается единственным. - person jwodder; 24.06.2019
comment
но разве это не неправильная запутанная формулировка? Тогда следует сказать, что использовать устаревший API для загрузки на текущий склад или что-то в этом роде? - person K.-Michael Aye; 27.09.2019

Документы для Warehouse объясняют эту запутанную номенклатуру. Цитаты ниже взяты с главной страницы и со страницы о Устаревший API:

Warehouse - это веб-приложение, реализующее канонический индекс пакета Python (репозиторий); его производственное развертывание - PyPI. Он заменяет старую базу кода, на которой работает pypi.python.org.

Устаревший API

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

...

Загрузить API

Конечная точка API, обслуживаемая по адресу upload.pypi.org/legacy/, представляет собой эмуляцию Warehouse устаревшего API загрузки PyPI. Это конечная точка, которая связывает такие инструменты, как и distutils использовать для загружать дистрибутивы в PyPI.

Другими словами, как я понимаю:

  • PyPI когда-то был веб-приложением, размещенным на pypi.python.org. Это старое приложение, которое больше не работает, теперь называется pypi-legacy.
  • PyPI теперь является веб-приложением, размещенным на pypi.org. Это новое приложение называется Warehouse. Старый pypi.python.org теперь просто перенаправление на pypi.org.
  • Помимо некоторых новых конечных точек, Warehouse по-прежнему предоставляет несколько конечных точек API, которые раньше были у pypi-legacy. Поскольку эти конечные точки были скопированы из pypi-legacy, вместе они известны как «устаревший API».
  • В дополнение к этому конечная точка загрузки в устаревшем API Warehouse обслуживается по URL-пути /legacy, выбор имени, который снова отражает тот факт, что это (частичная) повторная реализация конечной точки, используемой для загружает в pypi-legacy.

Все это кажется более запутанным, чем должно быть, но это то, что есть.

person Mark Amery    schedule 24.12.2019