??這是一個(gè)應(yīng)該比較常見的問題,下面首先講一下該類問題的一般解決 思路,然后再進(jìn)行一個(gè)自我debug的過程描述。
1 解決思路
??出現(xiàn)該問題的根本原因是,當(dāng)前使用的python環(huán)境,和已經(jīng)安裝了包的python環(huán)境不是同一個(gè)。解決問題一般可以根據(jù)如下順序進(jìn)行思考:
- 首先檢查一下當(dāng)前的conda環(huán)境,是否確實(shí)是你已經(jīng)安裝了這個(gè)包的環(huán)境。這可以通過執(zhí)行
conda list
命令來查看,如果列出的包里面有你需要的包,那么跳過這一步;如果沒有,那么切換到對(duì)應(yīng)的正確虛擬環(huán)境下,或者就裝一下這個(gè)包吧,一般pip install
。 - 如果不是上面的問題,檢查一下當(dāng)前python命令,使用的是哪里的python。這可以通過執(zhí)行
type python
或者type python3
來進(jìn)行查詢。如果是conda里的python,那么其路徑一般為/opt/conda/bin/python3
(正確路徑),而系統(tǒng)的python一般是/usr/bin/python3
。
??
2 解決過程
??博主這里出現(xiàn)的問題是,要import cv2的時(shí)候,報(bào)錯(cuò):
ImportError: No module named cv2
??于是,我執(zhí)行conda list
,列出了當(dāng)前conda環(huán)境下安裝好的環(huán)境,可以看出,我是安裝好opencv-python(即cv2)了的:
??既然包已經(jīng)安裝了,但是python卻找不到,那么,我們查一下當(dāng)前使用的python到底是哪個(gè),執(zhí)行如下命令:
type python3
??我這里的輸出為:
python3 is hashed (/usr/bin/python3)
??而如果查找的是python,也獲得了類似的輸出:
python is /usr/bin/python
??這就有問題了,這個(gè)python應(yīng)該是系統(tǒng)自帶的python環(huán)境,并不是我們當(dāng)前conda環(huán)境下的,所以就會(huì)出現(xiàn)找不到conda已經(jīng)安裝的包的問題了。那么問題的原因找到了,我又回想了一下,我昨天好像剛把/usr/bin
這個(gè)路徑給添加進(jìn)環(huán)境變量里了。執(zhí)行如下命令,查看當(dāng)前環(huán)境變量:
vim ~/.bashrc
??文件末尾的內(nèi)容如下所示,我確實(shí)將conda路徑和系統(tǒng)路徑都加進(jìn)去了:
export PATH=$PATH:/opt/conda/bin/
export PATH=$PATH:/usr/bin/
??之前這么添加的原因是,不加進(jìn)去的話,使用pip、conda、python的時(shí)候都需要把這個(gè)路徑前綴給帶上,感覺很麻煩(當(dāng)然,這個(gè)問題可能只是因?yàn)槲以赿ocker環(huán)境里)。解決辦法就很簡單了,可以把/usr/bin/
這個(gè)環(huán)境變量去掉,也可以把兩個(gè)環(huán)境變量都去掉,然后保存,執(zhí)行:文章來源:http://www.zghlxwxcb.cn/news/detail-439218.html
source ~/.bashrc
??環(huán)境變量的修改就生效了。下面,讓我們再執(zhí)行python3,就不會(huì)再說找不到已經(jīng)安裝的包了(如果報(bào)錯(cuò)找不到python,或者發(fā)現(xiàn)python還是usr路徑下的,那么,在執(zhí)行的時(shí)候帶上路徑前綴吧,比如/opt/conda/bin/python3
)。文章來源地址http://www.zghlxwxcb.cn/news/detail-439218.html
到了這里,關(guān)于python安裝好了某個(gè)包但是仍報(bào)錯(cuò)ImportError: No module named xxx的解決方法及思路的文章就介紹完了。如果您還想了解更多內(nèi)容,請?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!