1. 程式人生 > >Python 之 ImportError: No module named ***

Python 之 ImportError: No module named ***

() data 表示 fix word-wrap 什麽 -c rac xxxxxx

假設想使用非當前模塊中的代碼,須要使用Import。這個大家都知道。


假設你要使用的模塊(py文件)和當前模塊在同一文件夾。僅僅要import對應的文件名稱就好,比方在a.py中使用b.py:

import b


可是假設要import一個不同文件夾的文件(比如b.py)該怎麽做呢?
首先須要使用sys.path.append方法將b.py所在文件夾增加到搜素文件夾中。

然後進行import就可以,比如
import sys
sys.path.append(‘c:\xxxx\b.py‘) # 這個樣例針對 windows 用戶來說的
大多數情況。上面的代碼工作的非常好。可是假設你沒有發現上面代碼有什麽問題的話,可要註意了,上面的代碼有時會找不到模塊或者包(ImportError: No module named xxxxxx),這是由於:


sys模塊是使用c語言編寫的。因此字符串支持 ‘\n‘, ‘\r‘, ‘\t‘等來表示特殊字符。所以上面代碼最好寫成:
sys.path.append(‘c:\\xxx\\b.py‘)
或者sys.path.append(‘c:/xxxx/b.py‘)

這樣能夠避免由於錯誤的組成轉義字符,而造成無效的搜索文件夾(sys.path)設置。


怎樣將路徑加入到sys.path?

sys.path是python的搜索模塊的路徑集,是一個list

能夠在python 環境下使用sys.path.append(path)加入相關的路徑,但在退出python環境後自己加入的路徑就會自己主動消失了!

能夠使用下面命令輸入當前python 的搜索路徑:

python -c"import sys;print ‘當前的python是:‘+sys.prefix;print ‘\n‘.join(sys.path)"

練習使用sys.path.append方法加入路徑,顯示退出python會消失!

python -c"import sys;print ‘當前的python是:‘+sys.prefix;sys.path.append(r‘E:\DjangoWord‘);print ‘\n‘.join(sys.path)"

再次執行,會發現 自己加入路徑E:\DjangoWord()不存在了!

python -c"import sys;print ‘當前的python是:‘+sys.prefix;print ‘\n‘.join(sys.path)"


怎樣將路徑永久加入到sys.path?


詳址:http://my.oschina.net/leejun2005/blog/109679


Python 之 ImportError: No module named ***