使用pip更新包的方法是什么? 这些都不起作用:
pip update
pip upgrade
我知道这是一个简单的问题,但它是必要的,因为它不那么容易找到(pip文档不会弹出和堆栈溢出的其他问题是相关的,但并不完全是关于这个)
使用pip更新包的方法是什么? 这些都不起作用:
pip update
pip upgrade
我知道这是一个简单的问题,但它是必要的,因为它不那么容易找到(pip文档不会弹出和堆栈溢出的其他问题是相关的,但并不完全是关于这个)
当前回答
更新所有已安装的包
如果你只想升级一个包,请参考@borgr的回答。我经常发现一次升级所有的包是必要的,或者至少是令人愉快的。目前,pip本身不支持该操作,但是使用sh脚本就足够简单了。您可以使用pip列表、awk(或cut和tail)和命令替换。我经常说的一句话是:
for i in $(pip list -o | awk 'NR > 2 {print $1}'); do sudo pip install -U $i; done
这将要求输入根密码。如果您无法访问它,pip或virtualenv的——user选项可能是值得研究的东西。
其他回答
更新所有已安装的包
如果你只想升级一个包,请参考@borgr的回答。我经常发现一次升级所有的包是必要的,或者至少是令人愉快的。目前,pip本身不支持该操作,但是使用sh脚本就足够简单了。您可以使用pip列表、awk(或cut和tail)和命令替换。我经常说的一句话是:
for i in $(pip list -o | awk 'NR > 2 {print $1}'); do sudo pip install -U $i; done
这将要求输入根密码。如果您无法访问它,pip或virtualenv的——user选项可能是值得研究的东西。
当偏离主题时,人们可能会想到这个问题,希望更新pip本身(参见这里)。
要为Python3.4+升级pip,必须按如下方式使用pip3:
sudo pip3 install pip --upgrade
这将升级位于:/usr/local/lib/python3.的pipX / dist-packages
否则,要为Python2.7升级pip,您可以如下所示使用pip:
sudo pip install pip --upgrade
这将升级位于:/usr/local/lib/python2.7/dist-packages的pip
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 install <package_name> --upgrade
简而言之
pip install <package_name> -U
使用sudo会要求输入root密码来确认操作,虽然很常见,但被认为是不安全的。
如果你没有根密码(如果你不是管理员),你应该使用virtualenv。
您还可以使用用户标志仅在该用户上安装它。
pip install <package_name> --upgrade --user
我使用下面的行来更新我所有过期的包:
pip list --outdated --format=freeze | awk -F '==' '{print $1}' | xargs -n1 pip install -U