如何使用pip更新\升级包?

bor*_*rgr 108 python pip

使用pip更新包的方法是什么?那些不起作用

pip update
pip upgrade
Run Code Online (Sandbox Code Playgroud)

我知道这是一个简单的问题,但因为它不容易找到(pip 文档没有弹出,堆栈溢出的问题是相关的,但并不完全相关)

bor*_*rgr 183

方式是

sudo pip install [package_name] --upgrade
Run Code Online (Sandbox Code Playgroud)

或简而言之

sudo pip install [package_name] -U
Run Code Online (Sandbox Code Playgroud)

sudo 将要求输入您的root密码以确认操作.

如果您没有root密码(如果您不是管理员),您可能应该使用virtualenv,然后您应该删除sudo:

pip install [package_name] --upgrade
Run Code Online (Sandbox Code Playgroud)

  • 当你做"pip --help"时,为什么没有显示这样一个常见选项对我来说是一个谜语...... (13认同)

as *_* if 39

对于非特定包和更通用的解决方案,您可以查看pip-review。检查哪些包可以/应该更新的工具。

安装:

$ pip install pip-review
Run Code Online (Sandbox Code Playgroud)

然后运行:

$ pip-review --interactive
requests==0.14.0 is available (you have 0.13.2)
Upgrade now? [Y]es, [N]o, [A]ll, [Q]uit y
Run Code Online (Sandbox Code Playgroud)

  • 虽然这并不能直接回答问题,但这可能是某些人在查找此消息时实际寻找的内容。 (9认同)
  • 仅供参考,需要先安装“pip-review”和“pip” (2认同)
  • `pip-review` 是否检查所有软件包,包括那些不是由 `pip` 安装的软件包? (2认同)

Sar*_*ara 19

此外,在 Jupyter Notebook 中,通过在代码单元中运行以下代码,您可以更新您的包:

%pip install <package_name> --upgrade
Run Code Online (Sandbox Code Playgroud)


mam*_*mal 15

在终端中使用此代码:

python -m pip install --upgrade PAKAGE_NAME #instead of PAKAGE_NAME 
Run Code Online (Sandbox Code Playgroud)

例如我想更新 pip 包:

 python -m pip install --upgrade pip
Run Code Online (Sandbox Code Playgroud)

更多例子:

python -m pip install --upgrade selenium
python -m pip install --upgrade requests
...
Run Code Online (Sandbox Code Playgroud)


gat*_*sec 15

我使用以下行来更新所有过时的软件包:

pip list --outdated --format=freeze | awk -F '==' '{print $1}' | xargs -n1 pip install -U
Run Code Online (Sandbox Code Playgroud)

在较新版本的 pip 上,上述中断,请改用:

pip list --outdated --format=json | jq '.[].name' | xargs -n1 pip install -U
Run Code Online (Sandbox Code Playgroud)


Fof*_*dsf 10

import subprocess as sbp
import pip
pkgs = eval(str(sbp.run("pip3 list -o --format=json", shell=True,
                         stdout=sbp.PIPE).stdout, encoding='utf-8'))
for pkg in pkgs:
    sbp.run("pip3 install --upgrade " + pkg['name'], shell=True)
Run Code Online (Sandbox Code Playgroud)

另存为 xx.py
然后运行 ​​Python3 xx.py
环境:python3.5+ pip10.0+


Aid*_*uff 7

tl; dr脚本更新所有已安装的软件包

如果只想升级一个软件包,请参考@borgr的答案。我经常觉得有必要,或者至少是令人愉快的,一次升级我的所有软件包。目前,pip本身并不支持该操作,但是使用sh脚本已足够简单。您使用pip listawk(或cuttail)和命令替换。我通常的单线是:

for i in $(pip list -o | awk 'NR > 2 {print $1}'); do sudo pip install -U $i; done
Run Code Online (Sandbox Code Playgroud)

这将要求输入root密码。如果您没有访问权限,则--user可以考虑使用pipor或virtualenv选项。


小智 6

虽然偏离主题,但可能会遇到希望更新 pip 本身的问题(请参阅此处)。

为 Python3.4+ 升级 pip,你必须使用 pip3 如下:

sudo pip3 install pip --upgrade
Run Code Online (Sandbox Code Playgroud)

这将升级位于:/usr/local/lib/python3.X/dist-packages 的 pip

否则,要升级 Python2.7 的 pip,您将按如下方式使用 pip:

sudo pip install pip --upgrade
Run Code Online (Sandbox Code Playgroud)

这将升级位于:/usr/local/lib/python2.7/dist-packages 的 pip

  • 这不是OP所要求的。他问的是如何升级特定的软件包,而不是 PIP 本身。 (11认同)