Fork me on GitHub

PIP3升級后報錯:"ImportError:cannot import name 'main'解決辦法"

這個問題其實很早之前我就遇到過,當時用的是python2,在升級PIP之后發現報了一個錯誤,如下:

1
2
3
4
5
[email protected]:/# pip3 install openpyxl
Traceback (most recent call last):
File "/usr/bin/pip3", line 9, in <module>
from pip import main
ImportError: cannot import name 'main'

報這個錯的原因是PIP更新為10.0.0后庫里面函數有所變動導致的結果。首先找到/usr/bin/pip中的pip文件,找到找到以下代碼:

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

將最后一行代碼改成以下代碼:

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

然后保存退出就可以解決這個錯誤了。

需要特別注意的是,如果是python2中遇到了這個問題,需要先找到python2的路徑,用which python來找到python2,如果是python3中的pip3遇到了這個問題,那么也應該找到對應的pip3,然后去修改上述代碼,這點是我看了很多教程中沒有提及到的地方。

在寫這篇文章的時候發現了HEXO博客的另一個問題,就是如果HEXO博客題目中帶有空格的話,會報以下錯誤:

1
YAMLException: incomplete explicit mapping pair; a key node is missed; or followed by a non-tabulated empty line at line 1, column 29:

解決上述問題只需要把題目含有空格的內容加上雙引號即可,如下:

1
2
3
4
5
# 原文章標題,執行hexo g后報錯
PIP3升級后報錯:ImportError:cannot import name 'main'解決辦法

# 更新后的文章標題,執行hexo g后正常
PIP3升級后報錯:"ImportError:cannot import name 'main'解決辦法"
贵州体育彩票11选5