如何用twine上传新版本的项目到pypi?

Bas*_*sha 15 python package pypi python-3.x twine

我已将我的python包上传到pypi.但现在我制作了我的包的新版本,需要上传它.我试着在第一次上传包时做了同样的进展.但是给我这个错误:

HTTPError: 400 Client Error: File already exists. See https://pypi.org/help/#file-name-reuse for url: https://upload.pypi.org/legacy
Run Code Online (Sandbox Code Playgroud)

现在,如何上传新版本没有任何错误?!

Dus*_*ram 29

PyPI不允许重用分发文件名(项目名称+版本号+分发类型).

这可以确保给定项目的给定版本的给定分发将始终解析为同一文件,并且一天不能由项目维护者或恶意方进行秘密更改(只能将其删除).

您需要将版本号更改为之前未上传到PyPI的版本号.

您没有提到如何上传发行版,但如果您正在使用twine,那么您也可能尝试上传以前构建的发行版.要解决此问题,您可以:

$ twine upload --skip-existing dist/*
Run Code Online (Sandbox Code Playgroud)

  • 谢谢,救了我的命:) (7认同)

Nel*_*era 13

由于以下原因可能会出现该错误:

  • 没有改变你的版本 setup.py
  • 没有删除你之前的 dist 文件

解决方案:

  • 中更改版本号setup.py
  • 再次运行安装文件。python setup.py bdist_wheel.
  • 仅上传该 dist 文件或运行 twine(如果使用)。 twine upload --skip-existing dist/*

正如@dustin 提到的,同名的dist 文件不能再次上传。