沒法import的緣由(ImportError: No module named *****)

python中,每一個py文件被稱之爲模塊,每一個具備__init__.py文件的目錄被稱爲包。只要模塊或者包所在的目錄在sys.path中,就可使用import 模塊或import 包來使用。
 
若是想使用非當前模塊中的代碼,須要使用Import,這個你們都知道。
若是你要使用的模塊(py文件)和當前模塊在同一目錄,只要import相應的文件名就好,好比在a.py中使用b.py:html

import b


可是若是要import一個不一樣目錄的文件(例如b.py)該怎麼作呢?
首先須要使用sys.path.append方法將b.py所在目錄加入到搜素目錄中。而後進行import便可,例如python

import sys
sys.path.append('c:\xxxx\b.py')


大多數狀況,上面的代碼工做的很好。可是若是你沒有發現上面代碼有什麼問題的話,可要注意了,上面的代碼有時會找不到模塊或者包(ImportError: No module named xxxxxx),這是由於:
sys模塊是使用c語言編寫的,所以字符串支持 '\n', '\r', '\t'等來表示特殊字符。因此上面代碼最好寫成:app

sys.path.append('c:\\xxx\\b.py')

或者spa

sys.path.append('c:/xxxx/b.py')

 
這樣能夠避免由於錯誤的組成轉義字符,而形成無效的搜索目錄(sys.path)設置。htm

相關文章
相關標籤/搜索