更新PyPI包

时间:2012-12-17 18:24:01

标签: python pypi

有没有办法在不更改版本号的情况下更新PyPI包?

想象一下,我在最近上传到PyPI的软件包中发现了一个小错误。有没有办法在不增加版本号的情况下编辑/重新上传代码?

更新 我想我应该澄清一下,“bug”我的意思是实际源代码中的版本号是错误的 - 它不是一个功能性的东西,它只是意味着如果你package.version获得了以前的版本,而不是当前的版本(是的,我知道这个可能导致其他人的代码中的错误,但鉴于我们处于alpha状态,我希望版本依赖关系还没有设置...)。为了记录,明显无声错误修复是不好的!

更新2 截至2015年1月,所提供的解决方案已不再有效 - 请参阅this post for more information.

1 个答案:

答案 0 :(得分:45)

当您遇到错误时,始终上传版本。

增加版本号,包括更改日志,称之为棕色包发布(不是我,有人在头上戴着棕色包,真的,老实说)。

你永远不知道谁已经下载了一个版本的副本(在镜像上,直接从你的github页面,无论如何),永远不会知道你悄悄地修复了一个bug。而且,那些确定你取代了发行版的人,现在必须学习如何强制重新安装。

请勿使用无提示错误修复程序替换已发布的程序包。不要被诱惑。只需制作一个新版本。

另一方面,如果您以某种方式破坏了分发文件本身,因此.zip.tar.gz文件是b0rken,那么您需要使用PyPI Web界面手动删除该文件并重新上传。

24th of January开始,PyPI甚至不再让你重用文件名;这意味着您无法重新上传具有相同版本号的新文件。

如果你所做的一切都是包装错误,你可以在版本号中添加.postN后缀(所以.post1.post2等)以表明发布后更新