Почему метаданные setup.py не используются в PyPI?

У меня была бета-версия моего пакета на PyPi.

Метаинформация (например, домашняя страница, категории и т. д.) из setup.py появилась на PyPi-страница проекта.

Позже я обновил проект. Единственное, что я изменил в setup.py, это номер версии.

Обновление: Как всегда, никогда не верьте тому, кто так говорит. Я перешел с setuptools на distutils! Программирование Cargo Cult - я просто скопировал то, что сделал другой проект. Извините.

Но следующая версия на странице PyPi проекта не содержит метаинформации.

Я пытаюсь понять, как я его сломал; Я считаю, что PyPi довольно утомительный, поэтому я уверен, что это был я. На этот раз я использовал Python 2.7.1 на довольно свежей установке Windows (где раньше я использовал Python 2.6.x).

Я почти наверняка использовал другую командную строку для его загрузки. (На этот раз, похоже, нужно было подписать и установить pgp, чего я не помню в прошлый раз).

Где я должен посмотреть, почему метаинформация в файле setup.py больше не загружается?


person Oddthinking    schedule 06.06.2011    source источник


Ответы (2)


Выполнение следующей команды в файле setup.py должно исправить проблему:

$ python setup.py register

В идеале вы хотели бы запустить команду регистрации вместе с загрузкой. Я обычно использую как минимум три команды при выпуске любого пакета (sdist, register, upload). Следующее сделает типичный выпуск для PyPI:

$ python setup.py sdist register upload

Остальная часть этого поста представляет собой краткое объяснение того, что делают эти команды.

Команда sdist — одна из немногих команд сборки, которые создают исходный дистрибутив. Вы, вероятно, уже знакомы с ним, поскольку загрузили файл .zip. Аналогичной командой является bdist, которая создает бинарные дистрибутивы.

Метаданные дистрибутива (или пакета) отправляются отдельно от встроенного дистрибутива. Команда setuptools upload загрузит ваши сборки проекта (например, myproject-0.0.zip). Для обновления метаданных следует использовать команду register. Команда register отправляет PKGINFO (или egg_info) в PyPI в формате, который он понимает.

person pumazi    schedule 16.09.2011
comment
Задержка приема, извините! Это было исключено из-за низкого приоритета. Регистрация моментально решила проблему. Спасибо. - person Oddthinking; 10.01.2012

Трудно ответить. Можете ли вы дать нам командные строки, которые вы использовали? Ваш setup.py использует distutils или setuptools? Изменили ли вы файл pydistutils.cfg или .pypirc между двумя этими операциями?

person Éric Araujo    schedule 10.10.2011
comment
Наконец-то я вернулся к подробному рассмотрению этого вопроса. Вы уловили проблему - я перешел с setuptools на distutils! Очевидно, я программировал методом вырезания и вставки! Однако команда регистрации исправила это - в этом разница между инструментами? Не знаю. Готов отпустить это сейчас. - person Oddthinking; 10.01.2012
comment
Странно, поскольку setuptools ничего не делает с метаданными и не меняет поведение команды регистрации. В любом случае, ваша проблема устранена сейчас, если вы снова столкнетесь с ней позже и подтвердите, что есть ошибка, которую мы исследуем в этот момент. Ваше здоровье - person Éric Araujo; 14.01.2012
comment
Спасибо. Я более чем счастлив принять это как проблему PEBKAC. - person Oddthinking; 14.01.2012