将新版本上传到TestPyPi

时间:2019-06-10 04:50:46

标签: python version-control package pypi

tl; dr -如何将新版本上传到TestPyPi项目?

说明:我遵循了《 Python软件包用户指南》中的these instructions,将测试软件包导入TestPyPi。但是,我上传的软件包有错误。我更正了该错误并尝试覆盖该程序包,但是遇到以下错误:

代码:

python3 -m twine upload --repository-url https://test.pypi.org/legacy/ dist/*

错误:

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

在堆栈溢出时,我发现一则帖子指出TestPyPi软件包cannot be overwritten。但是,TestPyPi本身表明应该可以发布版本。

当我在TestPyPi中搜索文档时,找不到任何说明如何上传软件包新版本的东西。在一个区域中,我找到了一个简短的发行管理参考,但这是一个超链接,链接到有关如何安装软件包的说明,而不是更新软件包的说明(这与我在本文第一句中引用的超链接相同)。

如何将新版本上传到TestPyPi项目?

2 个答案:

答案 0 :(得分:0)

TestPyPI甚至PyPI本身都具有重用文件名的能力。但是在切换到Warehouse之后(PyPI和TestPyPI背后的新代码),他们失去了这种能力。无法重新上传相同的文件名。

增加版本,重新生成软件包并上传具有新名称的新软件包。

答案 1 :(得分:0)

您需要在setup.py中增加版本,然后重新运行setup.py;。例如python3 setup.py sdist bdist_wheel或类似名称。最好rm -rf dist build并删除egg-info文件。

您不能只重新提交相同的打包名称和版本,它不会自动覆盖,并且您可以理解为什么如果您从逻辑上考虑它,如果代码更改,您将永远不想覆盖人们所依赖的当前版本,因为它可能破坏他们的实例,因此您在进行测试时要练习以确保养成良好的习惯。