python 升级所有库_自动更新Python所有第三方库
一般python用得比較久以后,就會安裝很多第三方的庫。比如這是我的pip list情況:
pip list
而且一屏還顯示不完。
通過如下命令可以看到需要更新的第三方庫:
pip list -o
需要更新的庫
而pip提供的更新命令只能一個(gè)個(gè)的更新...
pip install -U 庫名 # 注意U必須大寫
有更新強(qiáng)迫癥的同學(xué)是不是想砸電腦!
于是還是寫個(gè)腳本來一次性全部更新。
要一次性更新,那么來個(gè)笨辦法,用Python執(zhí)行CMD命令吧...
用Python執(zhí)行CMD命令比較常用的就是subprocess庫,用來執(zhí)行子進(jìn)程。
腳本思路:
先執(zhí)行pip list -o 命令獲取所有的更新列表;
然后從更新列表中取出需要更新的第三方庫名;
循環(huán)執(zhí)行pip install -U 庫名。
腳本如下:
import subprocess
# pip顯示需要更新的python列表
com_list_o = 'pip list -o'
# 執(zhí)行命令并返回結(jié)果
p = subprocess.Popen(com_list_o, shell=True, stdout=subprocess.PIPE)
# 取命令返回結(jié)果,結(jié)果是一個(gè)二進(jìn)制字符串,包含了我們上面執(zhí)行pip list -o后展現(xiàn)的所有內(nèi)容
out = p.communicate()[0]
# 二進(jìn)制轉(zhuǎn)utf-8字符串
out = str(out, 'utf-8')
# 切出待升級的包名, 并存入列表
need_update = []
for i in out.splitlines()[2:]:
need_update.append(i.split(' ')[0])
# 執(zhí)行升級命令,每次取一個(gè)包進(jìn)行升級,pip只支持一個(gè)包一個(gè)包的升級
for nu in need_update:
com_update = 'pip install -U {py}'.format(py=nu)
print("執(zhí)行命令:", com_update)
subprocess.call(com_update)
print("----------{com} 執(zhí)行結(jié)束-----------\n".format(com=com_update))
print("檢查更新情況:")
subprocess.call(com_list_o)
執(zhí)行結(jié)果
由于我的Python2和Python3都有,環(huán)境變量加的是Python2,因此Python3的pip命令在執(zhí)行的時(shí)候要寫成py -3 -m pip list -o和py -3 -m pip install -U 庫名。
腳本執(zhí)行時(shí)間會嚴(yán)重受網(wǎng)絡(luò)情況影響,不過好歹實(shí)現(xiàn)了一次更新所有第三方庫。
總結(jié)
以上是生活随笔為你收集整理的python 升级所有库_自动更新Python所有第三方库的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 交通银行Y-POWER信用卡额度多少 你
- 下一篇: code vs 代码格式化排版_23行代