日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程语言 > python >内容正文

python

python 升级所有库_自动更新Python所有第三方库

發(fā)布時(shí)間:2023/12/10 python 26 豆豆
生活随笔 收集整理的這篇文章主要介紹了 python 升级所有库_自动更新Python所有第三方库 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

一般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)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。