Ошибка загрузки PyPI 400
Я создал пакет в PyPI с именем virtdc. Я внесла некоторые изменения и выложил 2 разных версии 0.1.0 и 0.1.1. Теперь я удалил версию 0.1.1 через веб-интерфейс PyPI и попытаюсь загрузить снова с тем же номером версии. Это дает мне ошибку следующим образом
...
Writing virtdc-0.1.2/setup.cfg
Creating tar archive
removing 'virtdc-0.1.2' (and everything under it)
running register
Registering virtdc to http://pypi.python.org/pypi
Server response (200): OK
running upload
Submitting dist/virtdc-0.1.2.tar.gz to http://pypi.python.org/pypi
Upload failed (400): This filename has previously been used, you should use a different version.
И PyPI не разрешает более 4 версий для пакета. Поэтому нам нужно удалить некоторые версии и загрузить снова.
Даже после этой ошибки загрузки доступно первое описание содержимого. Но ссылка на скачивание недоступна. Вы можете найти мой пакет здесь
Может ли кто-нибудь помочь мне в этом? Благодаря
Ответы
Ответ 1
У меня была такая же проблема, и, похоже, нет прямого исправления:
http://sourceforge.net/p/pypi/support-requests/468
Однако, если вы хотите загрузить дистрибутив источника, существует обходное решение, которое не слишком уродливо. Вы можете создать "zip-архив" вместо архива "tar.gz". Вы можете управлять этим, например. с помощью
python setup.py sdist --formats=zip
Таким образом вы получаете другое имя файла. Затем вы можете добавить команду upload непосредственно
python setup.py sdist --formats=zip upload
Или вы можете использовать twine для загрузки после сборки:
twine upload dist/*
Ответ 2
Это сработало для меня:
- Удалите папки
build
, dist
и <package name>.egg-info
в корневом каталоге.
- Измените номер версии в файле
setup.py
.
- Создайте дистрибутив снова. например:
python setup.py sdist bdist_wheel
- Загрузка дистрибутива снова. например:
twine upload dist/*
- наслаждайтесь!: -)
Ответ 3
Принятый ответ больше не работает; PyPi теперь проверяет имя корневого файла, игнорируя расширения, чтобы определить, является ли это дубликат. Загрузка zip-формата дает ту же ошибку, что и gztar. Версии .post1
позволяют вам создать новую версию, которая является >= старой версией, но для таких вещей, как загрузка неправильного содержимого или упаковка файла, которого не должно быть в релизе, вы все еще застреваете с изменением версии.
Чтобы обойти это, вы можете перейти на сайт PyPi и вручную удалить выпуск (а не файл выпуска), который имеет сломанную загрузку. Он предупредит вас, что это невозможно отменить, поэтому убедитесь, что вы удалили выпуск и, в частности, версию, которую вы хотели удалить. После удаления вы можете повторно загрузить свой дистрибутив, как если бы он никогда не существовал раньше, и ответ дублирующего файла 400 не будет происходить. Очевидно, не злоупотребляйте этим и не меняйте код под носами людей, но если вы загружаете неправильный контент, это будет работать с политикой PyPi.