__virtual__ returned False: cannot import name certs ---saltstack異常解決

前文

  在往新機器上安裝salt-minion和salt-api的時候,一切正常,然後從master同步模塊過去也正常,當使用的時候就報錯:

__virtual__ returned False: cannot import name certs

  看到這個錯誤我就一臉懵逼,因爲salt-api相關的模塊裏並沒有用到所謂的certs模塊,所以報錯無法插入該模塊,就不知道是哪個模塊!

解決思路

  開啓谷歌大法,然後就搜到了這一篇關於saltstack的issue,問題和我的問題簡直一模一樣,鏈接:https://github.com/saltstack/salt/issues/43937
  通過文章裏講的,知道是requests的相關模塊出問題了,於是我就手動試着導入,結果發現真的無法導入,報錯如下:
在這裏插入圖片描述
  所以無法導入certs模塊基本是優於urllib3引起的,因爲我進入requests所在的第三方包目錄,清晰地發現certs.py存在着:
在這裏插入圖片描述
  因此根據文章裏所說,解決思路重新安裝requests和urllib3即可:
在這裏插入圖片描述
  不過我不用創新安裝requests,直接卸載urllib3並制定版本安裝即可(發現最新版安裝的時候還會報錯,故指定版本即可),相關命令如下:

pip uninstall urllib3
pip uninstall chardet
pip install -I urllib3==2.6
pip install -I urllib3==1.10.2
python -c 'import requests'
python -c 'import urllib3'

  安裝結束後,重新手動導入,發現兩個模塊都能成功導入了!
在這裏插入圖片描述

總結

  不得不說,還是google大法好,相關issue一下子就定位出來了,最後問題也是成功解決了~

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