解決pip3的ImportError: cannot import name 'main'

在Ubuntu中,升級pip3以後,使用pip3出現ImportError: cannot import name 'main'的錯誤。本文介紹如何修正這個錯誤,親測有效。python

安裝python3:函數

sudo apt install python3spa

安裝pip3:.net

sudo apt install python3-pipcode

升級pip3:ip

python3 -m pip install --upgrade pipget

而後再使用pip3安裝其它模塊的時候,就出現了ImportError: cannot import name 'main'的錯誤。it

修正的方法是修改/usr/bin/pip3這個文件。pip

以下是這個文件原來的內容:io

from pip import main  
if __name__ == '__main__':  
    sys.exit(main())

顯然,致使錯誤的緣由,就是pip3升級後,main函數被修改了。

如今修改這個文件,以下是修改後的內容:

from pip import __main__  //這行也要修改
if __name__ == '__main__':  
    sys.exit(__main__._main())//增長__main__._

保存後,再使用pip3,就一切正常了。

~$ pip3 --version
pip 19.0.3 from /home/xinlin/.local/lib/python3.6/site-packages/pip (python 3.6)

不知道爲啥,安裝python3時,自帶的pip3的版本那麼低,若是換成高版本,不少人就不會面對這個問題了。

還有一種方法是重建/usr/bin/pip3的符號鏈接。

使用python3 -m pip或者python3 -m site --user-base,能夠看到pip3安裝在了什麼地方,重建符號鏈接便可。(如何建立符號連接

相關文章
相關標籤/搜索