PyPI 400 上传错误

PyPI 400 upload error

我在 PyPI 中创建了一个名为 virtdc 的包。我做了一些更改并上传了 2 个不同的版本 0.1.0 和 0.1.1。现在我通过 PyPI web 界面删除了 0.1.1 版本,并尝试使用相同的版本号再次上传。它给我的错误如下

...
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 个版本。所以我们要删除一些版本重新上传

即使出现此上传错误,第一个内容描述仍然可用。但是下载 link 不可用。你可以找到我的包裹here

谁能帮我解决这个问题?谢谢

我遇到了同样的问题,似乎没有直接的解决方法:

http://sourceforge.net/p/pypi/support-requests/468

但是,如果你想上传一个源代码分发,有一个不太丑陋的解决方法。您可以构建 "zip" 存档而不是 "tar.gz" 存档。你可以控制这个,例如通过

python setup.py sdist --formats=zip

这样,您将获得一个不同的文件名。那么你可以直接附加上传命令

python setup.py sdist --formats=zip upload

或者您可以在构建后使用twine上传:

twine upload dist/*

这对我有用:

  1. 删除根目录中的 builddist<package name>.egg-info 文件夹。
  2. 更改 setup.py 文件中的版本号。
  3. 重新创建分布。例如:python setup.py sdist bdist_wheel
  4. 再次上传分发。例如:twine upload dist/*
  5. 享受吧! :-)