江蘇網(wǎng)站開發(fā)百度人工服務(wù)電話
python系統(tǒng)路徑添加錯誤
- 報錯原因
- 原因分析
- 解決辦法
- 補充
最近寫代碼的時候遇到一個問題,就是想添加工程下fu_convert文件夾下自己編寫的convert_fw.py模塊,但是出現(xiàn)報錯,是個比較低級的問題,但還是簡單記錄一下
報錯原因
無法找到模塊convert_fw;
相關(guān)代碼如下:
sys.path.append(parent)
sys.path.append(parent+"/FU")
sys.path.append(parent+"/fu_convert")
import convert_fw
原因分析
猜測sys.path沒有添加到正確的路徑,導(dǎo)致python腳本在import convert_fw模塊時候,無法在sys.path中找到convert_fw所在的路徑;于是如下圖,打印出了一下當前路徑parent,是C:\Users\Rio.lin\Desktop\Fu-tool\GUI;
而自己添加sys.path的時候是直接在parent下添加,即sys.path.append(parent+“/fu_convert”);這樣是錯誤的,因為fu_convert文件夾并不在C:\Users\Rio.lin\Desktop\Fu-tool\GUI,而是在它的父目錄C:\Users\Rio.lin\Desktop\Fu-tool下;要使用父目錄我們可以用sys.path.append(str(Path(file).resolve().parents[1]
所以自己添加sys.path時候應(yīng)該在parent的上一級目錄下再去添加fu_convert文件夾,這樣我們的python腳本才能imort到fu_convert文件夾下的convert_fw模塊
解決辦法
利用
sys.path.append(str(Path(__file__).resolve().parents[1].joinpath('fu_convert')))
替換掉錯誤的添加語句
sys.path.append(parent+"/fu_convert")
將搜索路徑添加進去,這樣即可正常運行
補充
另外,其實在windows環(huán)境的編程中添加路徑分隔符應(yīng)該是“\\”,而不是“/”,所有下述的寫法也是錯的
sys.path.append(parent+"/fu_convert")