作為新手經(jīng)常遇到ImportError: No module named 'XXX'這個(gè)錯(cuò)誤,有時(shí)候甚至一段代碼在終端能跑粟矿,在sublimeText就會(huì)報(bào)這個(gè)錯(cuò),或者在終端能跑损拢,systemd啟動(dòng)就不行的問(wèn)題陌粹。這個(gè)錯(cuò)誤就是找不到XXX模塊,引起這個(gè)錯(cuò)誤原因很多福压,下面來(lái)解析一下掏秩。
1,沒(méi)安裝
如果沒(méi)安裝的話(huà)荆姆,確實(shí)會(huì)找不到蒙幻。這時(shí)候你需要用命令
pip3 show XXX
來(lái)確認(rèn)你是否已經(jīng)安裝了該模塊,沒(méi)安裝的用以下命令安裝
sudo pip3 install XXX
2胆筒,執(zhí)行Python的版本
確認(rèn)自己用相應(yīng)的python版本來(lái)執(zhí)行相應(yīng)的module邮破,想知道自己編譯器或者終端默認(rèn)執(zhí)行的python版本,可以通過(guò)以下代碼打印出來(lái)。
import sys
print(sys.executable)
保持安裝與執(zhí)行的python版本的一致性决乎。
3队询,模塊加載的路徑
當(dāng)import一個(gè)模塊的時(shí)候(例如redis),解析器先從內(nèi)置模塊里面尋找构诚,內(nèi)置模塊沒(méi)有redis蚌斩,那就去sys.path里面提供的路徑數(shù)組里面查找,我們可以將sys.path打印出來(lái)看看包含哪些路徑范嘱。
import sys
print(sys.path)
其中第一個(gè)是你當(dāng)前python腳本的路徑送膳。如果你要import的module的路徑并沒(méi)有出現(xiàn)在sys.path的數(shù)組里面,那么必然會(huì)出現(xiàn)ImportError丑蛤。解決辦法有三個(gè):
1叠聋,當(dāng)你在編譯器的時(shí)候,可以直接用以下代碼受裹,將模塊路徑臨時(shí)添加進(jìn)sys.path
import sys
sys.path.append("你的模塊路徑")
2,在終端的時(shí)候可以用以下代碼臨時(shí)加進(jìn)去
export PYTHONPATH=$PYTHONPATH:"你的模塊路徑"
以上兩個(gè)方法都是臨時(shí)的碌补,第二個(gè)方法只要關(guān)閉終端,sys.path就會(huì)還原
3, 在當(dāng)前sitepackages里面添加.path文件
首先在編譯器或者終端里找出當(dāng)前的sitepackages
import site
print(site.getsitepackages())
然后在此路徑下創(chuàng)建一個(gè).path文件棉饶,文件名隨意厦章,.path文件內(nèi)容為,你要添加的module的路徑照藻。
以上就是解決ImportError: No module named 'XXX'的方法總結(jié)袜啃。