python 關於批量更新庫腳本報錯:AttributeError: module 'pip' has no attribute 'get_installed_distributions'

將pip 升到 10.0.0 版本後,以前一直能用的一鍵升級所有庫的腳本,原腳本內容如下:

#!/usr/bin/env python
# -*- coding: utf-8 -*-
'''
@Author  : Soner
@version : 
@Time    : 2017/11/3/0003 15:11
@license : Copyright(C), Your Company 
'''
import pip
from subprocess import call
from time import sleep

for dist in pip.get_installed_distributions():
    # 執行後,pip默認爲Python3版本
    # 雙版本下需要更新Python2版本的包,使用py2運行,並將pip修改成pip2
    call("pip install --upgrade " + dist.project_name, shell=True)

現在不能用了,一直提示如下錯誤:


後來找到pip的文件目錄,一路查找,是有這個模塊的

在根據調用層級,往上找,

之後將源腳本修改後,就可以正確進行一鍵更新操作:

#!/usr/bin/env python
# -*- coding: utf-8 -*-
'''
@Author  : Soner
@version : 
@Time    : 2017/11/3/0003 15:11
@license : Copyright(C), Your Company 
'''
import pip
# pip V10.0.0以上版本需要導入下面的包
from pip._internal.utils.misc import get_installed_distributions
from subprocess import call
from time import sleep

for dist in get_installed_distributions():
    # 執行後,pip默認爲Python3版本
    # 雙版本下需要更新Python2版本的包,使用py2運行,並將pip修改成pip2
    call("pip install --upgrade " + dist.project_name, shell=True)
小白一枚,不知道爲什麼pip升級到10.0.0版本後就不能直接調用,如果有大神指導或者有更好的辦法,歡迎指教~!
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章