使用pip更新软件包的方法是什么?以下方法均不适用:
pip update
pip upgrade
我知道这是一个简单的问题,但这是必要的,因为它不容易找到(pip 文档没有弹出,而来自 stack overflow 的其他问题虽然相关,但并不完全相关)
方法是这样的
pip install <package_name> --upgrade
简而言之
pip install <package_name> -U
使用sudo
会要求输入你的 root 密码以确认操作,但尽管很常见,但被认为是不安全的。
如果您没有 root 密码(如果您不是管理员),您应该考虑使用virtualenv。
您也可以使用用户标志仅在此用户上安装它。
pip install <package_name> --upgrade --user
对于一个非特定的软件包和更通用的解决方案,你可以查看pip-review。它是一个检查哪些软件包需要更新的工具。
安装方法:
$ pip install pip-review
然后运行:
$ 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
pip
安装 pip-review
。 - karatedogpip-review
是否检查所有包,包括那些不是由 pip
安装的? - Gathide在终端中使用此代码:
python -m pip install --upgrade PACKAGE_NAME
例如,我想更新pip
软件包:
python -m pip install --upgrade pip
更多示例:
python -m pip install --upgrade selenium
python -m pip install --upgrade requests
...
同时,在 Jupyter Notebook 中,通过在代码单元格中运行以下代码,您可以更新软件包:
%pip install <package_name> --upgrade
%pip install
,以确保安装发生在笔记本下面的内核支持环境中。只有感叹号是做不到这一点的,并且可能会导致问题/混淆。因此,增加魔术命令的动力就产生了。请参见 这里 了解更多关于现代魔术命令的信息。 - Waynetl;dr 更新所有已安装软件包的脚本。
如果您只想升级一个软件包,请参考@borgr的回答。 我通常发现有必要或至少愉悦地一次升级所有软件包。 目前,pip不支持原生地执行该操作,但使用sh脚本很简单。 您可以使用pip list
,awk
(或cut
和tail
)和命令替换。 我的普通一行代码是:
for i in $(pip list -o | awk 'NR > 2 {print $1}'); do sudo pip install -U $i; done
这将要求您输入root密码。如果您没有访问权限,则可以考虑使用pip
的--user
选项或者virtualenv。
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)
将文件保存为xx.py
然后运行Python3 xx.py
环境:python3.5+ pip10.0+
pip list --outdated --format=freeze | awk -F '==' '{print $1}' | xargs -n1 pip install -U
在更新的pip版本中,上述方法会出错,使用以下方法代替:
pip list --outdated --format=json | jq '.[].name' | xargs -n1 pip install -U
pip list --outdated --format=freeze
在当前最新的 pip
版本 23.1.2 中失败,显示错误信息:ERROR: List format 'freeze' can not be used with the --outdated option.
;而 pip list --outdated --format=json
可以正常工作 --> 可以使用 jq
处理输出结果,而不是使用 awk
。 - ssc虽然不是主题,但有人可能会想要更新pip本身(请参见这里)。
要升级Python3.4+的pip,必须使用以下命令pip3:
sudo pip3 install pip --upgrade
这将升级位于 /usr/local/lib/python3.X/dist-packages 的pip。
否则,要升级Python2.7的pip,您可以按以下方式使用pip:
sudo pip install pip --upgrade
pip list --outdated | Select-Object -Skip 2 | Select-String "^\S+" | ForEach-Object { pip install --upgrade $_.Matches[0].Value }
pip list -o | select -Skip 2 | sls "^\S+" | % { pip install -U $_.Matches[0].Value }