PyPI 400上传错误

Dan*_*any 15 packaging version pypi python-2.7

我在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.
Run Code Online (Sandbox Code Playgroud)

并且PyPI不允许包的4个以上版本.所以我们必须删除一些版本并再次上传.

即使在此上传错误之后,也可以使用第一个内容描述.但是下载链接不可用.你可以在这里找到我的包裹

有人可以帮我吗?谢谢

Mai*_*aik 16

我有同样的问题,似乎没有直接修复:

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

但是,如果要上传源代码分发,则有一种不太难看的解决方法.您可以构建"zip"存档而不是"tar.gz"存档.你可以控制它,例如通过

python setup.py sdist --formats=zip
Run Code Online (Sandbox Code Playgroud)

这样,您将获得不同的文件名.然后你可以直接附加upload命令

python setup.py sdist --formats=zip upload
Run Code Online (Sandbox Code Playgroud)

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

twine upload dist/*
Run Code Online (Sandbox Code Playgroud)

  • 我还看到了发布`.post1`版本的建议.这是一个符合PEP440标准的发布后版本,用于非常小的修复(比如修复你正在谈论的问题). (3认同)

Ric*_*Art 14

这对我有用:

  1. 删除build,dist以及<package name>.egg-info在你的根目录文件夹.
  2. 更改setup.py文件中的版本号.
  3. 再次创建分发.例如:python setup.py sdist bdist_wheel
  4. 再次上传分发.例如:twine upload dist/*
  5. 请享用!:-)