36

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

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

更新 我想我应该澄清一下“错误”是指实际源代码中的版本号是错误的 - 这不是功能性的东西,它只是意味着如果你package.version得到以前的版本,而不是当前的版本(是的,我知道这可能会导致其他人的代码出现错误,但鉴于我们处于 alpha 阶段,我希望版本依赖关系尚未设置...)。作为记录,显然无声的错误修复很糟糕!

更新 2 截至 2015 年 1 月,提供的解决方案不再有效 - 请参阅此帖子了解更多信息。

4

1 回答 1

64

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

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

你永远不知道谁可能已经下载了版本的副本(在镜像上,直接从你的 github 页面,无论如何),他们永远不会知道你悄悄地修复了一个错误。此外,那些确实发现您替换了发行版的人,现在必须学习如何强制重新安装。

不要用无声的错误修复替换已发布的软件包。不要被诱惑。只需发布一个新版本。

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

1 月 24 日起,PyPI 甚至不再允许您重用文件名;这意味着您无法重新上传具有相同版本号的新文件。

如果您做错的只是打包错误,您可以在版本号(so 、 等)中添加一个后缀.postN以表示发布后更新。.post1.post2

于 2012-12-17T18:32:31.907 回答