使用 Pip 升级 Python 软件包
你上次更新通过 Pip 安装的 Python 软件包是什么时候?大多数用户往往会忘记这些 Python 软件包也需要手动更新,因为仅仅更新系统存储库对于软件包来说是不起作用的。
因此,让我们花点时间看看如何使用 Pip,来更新旧的 Python 软件包吧。
如何使用 Pip 升级 Python 软件包
Pip(Pip Installs Packages) 是一个用于管理 Python 软件包的 命令行实用程序command line utility 。你可以将 Pip 安装 Python 软件包,类比为在 Ubuntu 和 Debian 中使用 apt
管理软件包那样。
因此,接下来就让我们深入了解如何使用这个极好的工具 Pip,来管理与 Python 软件包相关的内容吧。
1、列出过时的 Python 软件包
在计划更新什么软件包之前,我们先要列出有哪些过时的软件包,你可以在其中选择想要更新的软件包,因为大多数人不会想一下子更新整个软件包库。
要列出过时的 Python 软件包,你只需将 pip
命令与 list
选项、--outdated
标志一同使用即可,如下图所示:
pip list --outdated
outdated packages
2、升级特定的软件包
获得可更新的软件包列表后,你可以像我之前提到的那样,选择你要更新的那个特定的软件包,pip 升级软件包命令的语法如下:
pip install package_name -U
例如,我想将名为 anime-api
的软件包升级到最新版本,所以我将使用下面的命令来升级:
pip install anime-api -U
update anime api
3、将软件包升级到特定的版本
没有必要总是使用软件的最新版本,如果你想将软件包升级到不是最新的某个特定版本,参考如下的命令语法:
pip install --upgrade <package>==<version>
例如,我想将名为 xdg
的软件包更新到 5.1 版本,5.1 版本是最新版本的前一个版本,所以可以使用以下命令:
pip install --upgrade xdg==5.1
upgrade xdg to specific iteration
4、使用 Pip 一次性升级所有软件包
请注意:我不建议你一次性升级所以软件包,因为 Python 软件包的依赖项太复杂了,一次性的升级无法处理相互依赖项。
要一次性升级所有 python 软件包,你可以使用以下命令:
pip3 list --outdated --format=freeze | grep -v '^-e' | cut -d = -f 1 | xargs -n1 pip3 install -U
upgrade everything
上面的命令使用了 xargs。首先,会得到所有需要更新的软件包,然后对每个软件包执行 pip3 install -U
命令。
我在这里使用的是 pip3
,而不是 pip
。在 Ubuntu 22.04 及更高的版本中,pip
和 pip3
命令都可以使用。
总结
使用 Pip 一次性更新所有 Python 软件包并不是一个好主意。我发现一次性更新后,软件包之间的依赖关系被破坏了,所以请确保只更新你想要更新的软件包。