mirror of
https://github.com/LCTT/TranslateProject.git
synced 2024-12-26 21:30:55 +08:00
111 lines
4.3 KiB
Markdown
111 lines
4.3 KiB
Markdown
[#]: subject: "How to Upgrade Python Packages with Pip"
|
||
[#]: via: "https://itsfoss.com/upgrade-pip-packages/"
|
||
[#]: author: "Sagar Sharma https://itsfoss.com/author/sagar/"
|
||
[#]: collector: "lkxed"
|
||
[#]: translator: "chai001125"
|
||
[#]: reviewer: "wxy"
|
||
[#]: publisher: "wxy"
|
||
[#]: url: "https://linux.cn/article-15224-1.html"
|
||
|
||
使用 Pip 升级 Python 软件包
|
||
======
|
||
|
||
![](https://img.linux.net.cn/data/attachment/album/202211/07/153408lqflbw3mwxja3qm4.jpg)
|
||
|
||
你上次更新通过 Pip 安装的 Python 软件包是什么时候?大多数用户往往会忘记这些 Python 软件包也需要手动更新,因为仅仅更新系统存储库对于软件包来说是不起作用的。
|
||
|
||
因此,让我们花点时间看看如何使用 Pip,来更新旧的 Python 软件包吧。
|
||
|
||
### 如何使用 Pip 升级 Python 软件包
|
||
|
||
[Pip(Pip Installs Packages)][1] 是一个用于管理 Python 软件包的 <ruby>命令行实用程序 <rt> command line utility </rt></ruby> 。你可以将 Pip 安装 Python 软件包,类比为在 Ubuntu 和 Debian 中使用 `apt` 管理软件包那样。
|
||
|
||
因此,接下来就让我们深入了解如何使用这个极好的工具 Pip,来管理与 Python 软件包相关的内容吧。
|
||
|
||
#### 1、列出过时的 Python 软件包
|
||
|
||
在计划更新什么软件包之前,我们先要列出有哪些过时的软件包,你可以在其中选择想要更新的软件包,因为大多数人不会想一下子更新整个软件包库。
|
||
|
||
要列出过时的 Python 软件包,你只需将 `pip` 命令与 `list` 选项、`--outdated` 标志一同使用即可,如下图所示:
|
||
|
||
```
|
||
pip list --outdated
|
||
```
|
||
|
||
![outdated packages][2]
|
||
|
||
#### 2、升级特定的软件包
|
||
|
||
获得可更新的软件包列表后,你可以像我之前提到的那样,选择你要更新的那个特定的软件包,pip 升级软件包命令的语法如下:
|
||
|
||
```
|
||
pip install package_name -U
|
||
```
|
||
|
||
例如,我想将名为 `anime-api` 的软件包升级到最新版本,所以我将使用下面的命令来升级:
|
||
|
||
```
|
||
pip install anime-api -U
|
||
```
|
||
|
||
![update anime api][3]
|
||
|
||
#### 3、将软件包升级到特定的版本
|
||
|
||
没有必要总是使用软件的最新版本,如果你想将软件包升级到不是最新的某个特定版本,参考如下的命令语法:
|
||
|
||
```
|
||
pip install --upgrade <package>==<version>
|
||
```
|
||
|
||
例如,我想将名为 `xdg` 的软件包更新到 5.1 版本,5.1 版本是最新版本的前一个版本,所以可以使用以下命令:
|
||
|
||
```
|
||
pip install --upgrade xdg==5.1
|
||
```
|
||
|
||
![upgrade xdg to specific iteration][5]
|
||
|
||
#### 4、使用 Pip 一次性升级所有软件包
|
||
|
||
**请注意:我不建议你一次性升级所以软件包,因为 Python 软件包的依赖项太复杂了,一次性的升级无法处理相互依赖项。**
|
||
|
||
要一次性升级所有 python 软件包,你可以使用以下命令:
|
||
|
||
```
|
||
pip3 list --outdated --format=freeze | grep -v '^\-e' | cut -d = -f 1 | xargs -n1 pip3 install -U
|
||
```
|
||
|
||
![upgrade everything][6]
|
||
|
||
上面的命令使用了 [xargs][7]。首先,会得到所有需要更新的软件包,然后对每个软件包执行 `pip3 install -U` 命令。
|
||
|
||
我在这里使用的是 `pip3`,而不是 `pip`。在 Ubuntu 22.04 及更高的版本中,`pip` 和 `pip3` 命令都可以使用。
|
||
|
||
### 总结
|
||
|
||
使用 Pip 一次性更新所有 Python 软件包并不是一个好主意。我发现一次性更新后,软件包之间的依赖关系被破坏了,所以请确保只更新你想要更新的软件包。
|
||
|
||
如果你还有其他的疑问,就请在评论区中留言吧。
|
||
|
||
--------------------------------------------------------------------------------
|
||
|
||
via: https://itsfoss.com/upgrade-pip-packages/
|
||
|
||
作者:[Sagar Sharma][a]
|
||
选题:[lkxed][b]
|
||
译者:[chai001125](https://github.com/chai001125)
|
||
校对:[wxy](https://github.com/wxy)
|
||
|
||
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出
|
||
|
||
[a]: https://itsfoss.com/author/sagar/
|
||
[b]: https://github.com/lkxed
|
||
[1]: https://itsfoss.com/install-pip-ubuntu/
|
||
[2]: https://itsfoss.com/wp-content/uploads/2022/09/outdated-packages.png
|
||
[3]: https://itsfoss.com/wp-content/uploads/2022/09/update-anime-api.png
|
||
[4]: https://www.debian.org/
|
||
[5]: https://itsfoss.com/wp-content/uploads/2022/09/upgrade-xdg-to-specific-iteration.png
|
||
[6]: https://itsfoss.com/wp-content/uploads/2022/09/upgrade-everything.png
|
||
[7]: https://linuxhandbook.com/xargs-command/
|