"module 'pip' has no attribute 'main'"&"name pip is not defined"

起因: 之前安裝了pymongo用來存儲爬取的數據,後來想嘗試用Python操作MySQL,於是需要安裝pymysql的包,結果總是提示我的pip版本問題,我就索性更新了pip。結果,pip更新之後,接下來所有的包的安裝都提示標題中的錯誤:AttributeError: module ‘pip’ has no attribute ‘main’,以下是解決方案:

環境: Mac os系統/python3.5.3

解決方案:

  • 更改pakaging_tool.py文件
    首先來看錯誤界面:
    這裏寫圖片描述
    在黃色高亮區可以看到文件發生錯誤的位置,而我們要做的就是尋着該位置找到packaging_tool.py文件,然後進行更改。
    那麼在mac中如何找到對應位置呢,可以按照以下路徑:
    ① 在Mac的硬盤裏找到“應用程序”文件夾
    這裏寫圖片描述
    ② 在應用程序裏,找到“pycharm.app”,右擊“顯示包內容”
    這裏寫圖片描述這裏寫圖片描述
    ③ 再根據contents/helpers/packaging_tool.py路徑鎖定目標文件
    ④ 最後,將原文件:
    這裏寫圖片描述
    更改爲:
    這裏寫圖片描述

添加的代碼段爲:

try:
    from pip._internal import main
except Exception:
    from pip import main 
  • 替換packaging_tool.py文件
    還有種可能是有些人經過上面的更改之後還是有其他問題,比如會提示“name pip is not defined”,如果你也遇到這樣的問題。可以嘗試用下面的文件替換原來的packaging_tool.py文件
    網盤鏈接:https://pan.baidu.com/s/1nWxyOJt-WQGJ0H6G2J6WDg
    密碼:nkb3

  • 網上似乎還有另外一種辦法,就是降低pip的版本,這個我還沒試過

python -m pip install --upgrade pip==9.0.3
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章