python通过pip更新所有已安装的包实现方法

较新的pip已经支持list --outdated了,所以记录一下新的方法:

pip list --outdated --format=legacy |awk '{print $1}' |xargs sudo -H pip install -U
pip3 list --outdated --format=legacy |awk '{print $1}' |xargs sudo -H pip3 install -U

format有两个选项,一个是legacy,一个是columns。后者会带一个表头:

Package        Version Latest Type
-------------- ------- ------ -----

因此选择用legacy的格式,用awk取第一列就好了。

另外,网上很多方法都是在root下操作或者直接sudo不带-H的,这会在一些机器上出现问题。推荐用sudo -H,具体效果请自行查看man手册。

相关推荐