【问题标题】:Update a PyPI package更新 PyPI 包
【发布时间】:2012-12-04 21:12:21
【问题描述】:

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

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

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

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

【问题讨论】:

  • 还有testPyPI,如果你想加载你的包,运行pip3 install -i https://testpypi.python.org/pypi <package name>,并确认包在推送到真正的PyPI之前通过了单元测试。它的工作原理与 PyPI 相同——因此您也不能在那里重复上传相同版本号。

标签: python pypi


【解决方案1】:

当您遇到错误时,总是上传版本。

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

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

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

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

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

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

【讨论】:

    猜你喜欢
    • 2021-11-30
    • 2019-03-13
    • 2013-06-28
    • 2015-11-19
    • 2013-12-31
    • 2021-10-17
    • 2018-07-04
    • 2020-07-26
    • 2017-11-14
    相关资源
    最近更新 更多