使用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)
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)
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+
tl; 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
Run Code Online (Sandbox Code Playgroud)
这将要求输入root密码。如果您没有访问权限,则--user
可以考虑使用pip
or或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