我已经上传了我的Python包到PyPI。但现在我做了我的包的新版本,需要上传它。我试图取得相同的进展,我没有当第一次上传包。但给予我这个错误:
HTTPError: 400 Client Error: File already exists. See https://pypi.org/help/#file-name-reuse for url: https://upload.pypi.org/legacy
现在,如何上传新版本没有任何错误?!
我已经上传了我的Python包到PyPI。但现在我做了我的包的新版本,需要上传它。我试图取得相同的进展,我没有当第一次上传包。但给予我这个错误:
HTTPError: 400 Client Error: File already exists. See https://pypi.org/help/#file-name-reuse for url: https://upload.pypi.org/legacy
现在,如何上传新版本没有任何错误?!
7条答案
按热度按时间5lwkijsr1#
PyPI不允许重用分发文件名(项目名+版本号+分发类型)。
这确保了给定项目的给定发布版本的给定发行版将始终解析为相同的文件,并且不会在某一天被项目维护者或恶意方偷偷更改(它只能被删除)。
您需要将版本号更改为之前没有上传到PyPI的版本号。
您没有提到如何上传发行版,但如果您使用的是
twine
,也可能是您试图重新上传之前上传的发行版。要解决此问题,您可以执行以下操作:8yparm6h2#
可能会由于以下原因导致该错误:
setup.py
中的版本解决方案:
setup.py
中的版本号。python setup.py bdist_wheel
。twine upload --skip-existing dist/*
如@dustin所述,同名的dist文件不能再次上传。
niknxzdl3#
该错误似乎源于以下命令:
要解决此问题,请尝试以下操作:
nvbavucw4#
您需要更改版本号。
zengzsys5#
运行之前,请确保dist目录为空
t5fffqht6#
另一种没有人提到的方法是提供一个显式的文件名:
这与其它提出的解决方案相比具有优点,并且确切地说:
dist
文件夹中的所有内容,包括以前上传的版本。如果你移出旧版本,这是可以的,但我不确定可能的影响。--skip-existing
选项解决了上述问题,但仍然处理所有文件,因此需要时间。我相信有更有效的解决办法,但这对我来说足够简单。
g6baxovj7#
如果有旧dist目录,请在运行之前将其删除
原因:它包含旧版本文件,这会在使用twine上传到PyPI时导致问题