Вопрос или проблема
Я пытался загрузить новую версию своей библиотеки с некоторыми исправлениями, и всё прошло хорошо. С публикацией не было никаких проблем. Затем я установил эту версию и столкнулся с тем, что код модуля вообще не обновился. Описание библиотеки на странице 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 для получения дополнительной помощи. Запишите все шаги, которые вы выполнили — это поможет ускорить процесс диагностики проблем.