我創建了一個腳本(見下文)來升級我所有的 pip 包。我通過 成功執行了我的腳本idle3,即使用打開腳本idle3并按下F5以將腳本作為模塊運行。但是,我無法在終端中執行它;得到以下錯誤。我如何克服這個錯誤?為什么導入錯誤發生在終端而不是在idle3?$ python3 -m upgrade_pip_packages ====================================================UPGRADING ALL --USER PIP PACKAGES TO LATEST VERSION:====================================================Traceback (most recent call last): File "/usr/bin/pip", line 9, in <module> from pip import mainImportError: cannot import name mainERROR: Command 'pip list' returned non-zero exit status 1我的腳本:upgrade_pip_packages.py#!/bin/python3import subprocessfrom pprint import pprintdef get_pkgs(): try: cmd = 'pip list' completed = subprocess.run( cmd, shell=True, check=True, stdout=subprocess.PIPE ) except subprocess.CalledProcessError as err: print( 'ERROR:', err ) else: for line in completed.stdout.decode('utf-8').splitlines()[2:]: yield linedef update_pkgs(piplist): npackages = 0 nupgrades = 0 nerrors = 0 upgradelist = [] errorlist = [] for i in piplist: npackages += 1 pkgname, ver = i.split() print('\n',pkgname) try: cmd = 'pip install --user {} --upgrade'.format(pkgname) completed = subprocess.run( cmd, shell=True, check=True, stdout=subprocess.PIPE ) except subprocess.CalledProcessError as err: nerrors += 1 errorlist.append(pkgname) print( 'ERROR: {}'.format(err) ) else: for line in completed.stdout.decode('utf-8').splitlines(): print(line) if 'Successfully installed' in line: nupgrades +=1 upgradelist.append(pkgname) return npackages, nupgrades, nerrors, upgradelist, errorlist
添加回答
舉報
0/150
提交
取消