升级pip有什么用处?

4

虽然pip用于从PyPI安装和升级其他Python包,但你能帮我理解为什么需要升级pip本身吗?我正在开发一个新的Python项目,将使用pip来安装依赖包。

然而,我不确定是否需要在安装其他包之前将pip升级到最新版本(19.1.1),或者升级pip不需要安装来自PyPI的其他包。

另外,如果不将pip本身更新到最新版本,我想知道pip是否会在安装其他最新包时遇到困难。请澄清。


8
为同样的原因更新其他软件包。如果pip存在安全漏洞,会怎样?性能提升了吗?新增了什么功能? - Jared Smith
为什么不想确保拥有最新的代码、错误修复等呢? - David Zemens
5
你可能会对pip每个版本中的变更列表感兴趣。 - jwodder
1
@DavidZemens 因为新代码带来了新的API,你必须适应(还记得pip 10如何将所有内容重命名为“_internal”吗?),新的错误和增加的缓慢。 - phd
1
pip没有API,因此它不会更改API。如果您仍然对pip 10感到不满,那么好吧。_internal移动在发布之前很久就已经宣布了,并且还有一个beta期。如果有人仍在使用pip的内部功能,我不想花费我的自由(志愿)时间帮助他们理解如何以我们告诉他们不要使用的方式使用它。至于错误,所有软件更新都可能引入错误。我知道在pip中,这对用户来说更加痛苦。如果您在pip中发现任何错误,请在pip的问题跟踪器上让我们知道,像任何OSS项目一样,欢迎贡献! :) - pradyunsg
1
顺便说一句,关闭投票者——这不是一个“范围过大”的问题。它相当具体,因为pip是一个特殊的例子,作为包管理器。这里的答案不仅仅是“因为新的代码是最新和最好的”。 :) - pradyunsg
2个回答

7

(pip维护者在此)

与PyPI上的任何其他软件包相同的原因——新版本的pip包含错误修复、新功能、安全改进/漏洞补丁——还有更多!坚持使用旧版本的pip会给打包链中的每个人带来更多的工作,因为打包人员无法使用新的增强功能,因此也不能被用户使用。

例如,仍然有一些用户使用不支持为用户提供Python 2到Python 3转换的机制的pip版本。这对于用户(事情无法正常工作)、软件包维护者(他们分发的代码对用户无效)和pip维护者(我们花费了精力构建一个机制,但人们没有使用它)都是痛苦的。幸运的是,这只是少数用户的问题,但我认为这个例子说明了停留在旧版本的pip上如何以多种方式伤害多方。

理想情况下,用户应该尽快升级到最新版本的pip。pip打印提示信息告诉用户这样做是有原因的! :)


看到“pip维护者在此”后点了个赞 :) 谢谢。我也在GitHub上关注了你。 - VimNing
如果我有一些包是通过旧版本的pip安装的,那么在将pip本身升级到最新版本后,我应该做些什么? - VimNing
2
不,那应该是不必要的。 - pradyunsg

0

正如你可能已经知道的那样,pip是Python包安装程序,它可以帮助你从Python包索引等地方安装软件包。

因此,基本上这个任务就是下载一些定义版本的软件包,将所有已安装的软件包列入文件中,以便与他人共享,例如:"嘿,你知道我在我的项目super-man中使用tensorflow==1.13.0",所有这些机制的实现都需要升级和修复错误。

然而,我不确定是否需要将pip升级到最新版本(19.1.1)才能安装其他软件包,或者升级pip不需要安装PyPi中的其他软件包。

每个PIP版本的新增功能和错误修复信息可以在此处找到:https://pip.pypa.io/en/stable/news/#release-notes

只有当你觉得这些新增功能或错误修复对你的工作/项目非常重要时,才应该升级到19.1.1。

此外,我想知道如果PIP本身没有更新到最新版本,是否会导致pip安装其他最新软件包时出现困难。
一般来说,将PIP升级到最新版本是个好主意(如果你不想为每一个小细节烦恼)。
另外,在安装软件包时,请使用以下命令确保您获得所需的版本:pip install <package_name>==<version> 就个人而言,如果您想更好地了解Python,可以选择旧版本,因为这样您会自动更加关注像this这样的弃用警告。
最后,conda也不是一个坏选择,但PIP永远是pip :)

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接