如何使用 twine 将新版本的项目上传到 PyPI?

新手上路,请多包涵

我已经将我的 Python 包上传到 PyPI。但是现在我制作了我的包的新版本并且需要上传它。我尝试取得与第一次上传包时相同的进展。但给我这个错误:

 HTTPError: 400 Client Error: File already exists. See https://pypi.org/help/#file-name-reuse for url: https://upload.pypi.org/legacy

现在,如何无误地上传新版本?!

原文由 Basel Akasha 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 1.5k
2 个回答

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

这确保了给定项目的给定版本的给定分发将始终解析为相同的文件,并且不会有一天被项目维护者或恶意方偷偷更改(它只能被删除)。

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

您没有提到您是如何上传发行版的,但是如果您使用的是 twine ,您也有可能试图重新上传以前上传的发行版。要解决此问题,您可以执行以下操作:

 $ twine upload --skip-existing dist/*

原文由 Dustin Ingram 发布,翻译遵循 CC BY-SA 4.0 许可协议

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

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

解决方案:

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

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

原文由 Nelson Sequiera 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题