Содержимое моей библиотеки не обновляется, когда я загружаю новую версию на PyPI.

Вопрос или проблема

Я пытался загрузить новую версию своей библиотеки с некоторыми исправлениями, и всё прошло хорошо. С публикацией не было никаких проблем. Затем я установил эту версию и столкнулся с тем, что код модуля вообще не обновился. Описание библиотеки на странице PyPi также осталось прежним, несмотря на то, что файл README.md был отредактирован. Я подождал достаточно времени и несколько раз проверил, чтобы убедиться, что проблемы на стороне PyPI нет.

Я нашёл вопрос по аналогичной проблеме здесь, но на него не было релевантного ответа: PyPI: Код модуля не обновляется, когда я загружаю новую версию

Сначала, чтобы опубликовать библиотеку, я запустил эту команду для создания дистрибутива:

python setup.py sdist bdist_wheel

Затем загрузил в PyPI с помощью этой команды:

twine upload --repository pypi dist/*

Ранее всё всегда было в порядке, и изменения в содержимом библиотеки происходили сразу. Я даже пытался вручную отредактировать содержимое папки build, заменяя старые модули библиотеки, которые каким-то образом автоматически попали туда после первой команды, на новые. Похоже, что это и есть основная проблема.

Ответ или решение

Когда вы сталкиваетесь с проблемой обновления содержимого библиотеки после загрузки новой версии на PyPI, важно проследить за несколькими ключевыми аспектами процесса публикации. Давайте рассмотрим возможные причины вашей ситуации и шаги, которые можно предпринять для их решения.

1. Проверьте версию вашей библиотеки

Первым делом, убедитесь, что версия вашей библиотеки действительно обновлена в файле setup.py. Когда вы создаете дистрибутив, версия, указанная в setup.py, определяет, какая версия будет загружена на PyPI. Убедитесь, что вы увеличили версию перед созданием дистрибутива, например:

setup(
    name='your-library-name',
    version='1.1.0',  # Обновите версию
    ...
)

2. Очистите папку dist и build

Перед созданием нового дистрибутива рекомендуется очистить папки, содержащие предыдущие сборки. Используйте следующие команды для удаления папок build и dist, которые могут содержать старые артефакты:

rm -rf build dist *.egg-info

После этого снова выполните команду сборки:

python setup.py sdist bdist_wheel

3. Проверка содержимого сборок

После сборки библиотеки, убедитесь, что в папке dist есть новые архивы (например, your-library-name-1.1.0-py3-none-any.whl и your-library-name-1.1.0.tar.gz). Вы можете проверить их содержимое с помощью команд tar -tf для .tar.gz и unzip -l для .whl, чтобы убедиться, что код был обновлен.

4. Убедитесь в успешной загрузке

При использовании twine для загрузки необходимо убедиться, что загрузка прошла успешно и без ошибок. Вы можете проверить, отображается ли ваша новая версия на странице проекта PyPI.

twine upload --repository pypi dist/*

5. Проверка кеширования

Иногда, несмотря на успешную загрузку новой версии, может возникнуть проблема кеширования. Если вы используете pip для установки, попробуйте обновить кэш:

pip install --no-cache-dir your-library-name

Или удалите установленную версию перед ее повторной установкой:

pip uninstall your-library-name
pip install your-library-name

6. Обновление README.md

Чтобы обновления вашего файла README.md отобразились на странице PyPI, он также должен быть правильно указан в вашем setup.py. Убедитесь, что вы добавили его к аргументу long_description и что вы используете соответствующий формат (например, text/markdown или text/x-rst):

setup(
    ...
    long_description=open('README.md').read(),
    long_description_content_type='text/markdown',
    ...
)

7. Убедитесь, что у вас есть доступ к правам

Проверьте, что у вас есть необходимые права на изменение метаданных на PyPI. Убедитесь, что вы используете те же учетные данные, что и для предыдущих загрузок.

Заключение

Если после выполнения всех вышеперечисленных шагов проблема остается нерешенной, возможно, есть значение, которое вероятно было установлено ранее, и вам следует обратиться в службу поддержки PyPI для получения дополнительной помощи. Запишите все шаги, которые вы выполнили — это поможет ускорить процесс диагностики проблем.

Оцените материал
Добавить комментарий

Капча загружается...