自动更新Python所有第三方库

一般python用得比较久以后,就会安装很多第三方的库。比如这是我的pip list情况:
pip list
而且一屏还显示不完
通过如下命令可以看到需要更新的第三方库:

pip list -o

需要更新的库

而pip提供的更新命令只能一个个的更新…

pip install -U 库名  # 注意U必须大写

有更新强迫症的同学是不是想砸电脑!

于是还是写个脚本来一次性全部更新。
要一次性更新,那么来个笨办法,用Python执行CMD命令吧…
用Python执行CMD命令比较常用的就是subprocess库,用来执行子进程。

脚本思路:
先执行pip list -o 命令获取所有的更新列表;
然后从更新列表中取出需要更新的第三方库名;
循环执行pip install -U 库名。

脚本如下:

import subprocess

# pip显示需要更新的python列表
com_list_o = 'pip list -o' 
# 执行命令并返回结果
p = subprocess.Popen(com_list_o, shell=True, stdout=subprocess.PIPE)
# 取命令返回结果,结果是一个二进制字符串,包含了我们上面执行pip list -o后展现的所有内容
out = p.communicate()[0]
# 二进制转utf-8字符串
out = str(out, 'utf-8')

# 切出待升级的包名, 并存入列表
need_update = []
for i in out.splitlines()[2:]:
    need_update.append(i.split(' ')[0])

# 执行升级命令,每次取一个包进行升级,pip只支持一个包一个包的升级
for nu in need_update:
    com_update = 'pip install -U {py}'.format(py=nu)
    print("执行命令:", com_update)
    subprocess.call(com_update)
    print("----------{com} 执行结束-----------\n".format(com=com_update))


print("检查更新情况:")
subprocess.call(com_list_o)

执行结果
由于我的Python2和Python3都有,环境变量加的是Python2,因此Python3的pip命令在执行的时候要写成py -3 -m pip list -opy -3 -m pip install -U 库名

脚本执行时间会严重受网络情况影响,不过好歹实现了一次更新所有第三方库。

  • 5
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值