2010-01-01 164 views

回答

10

Python沒有在sys.path每個目錄的每個子目錄採取一定是:只有那些名爲__init__.py的文件。考慮以下shell會話:

$ mkdir adir 
$ echo 'print "hello world"' > adir/helo.py 
$ python -c 'import adir.helo' 
Traceback (most recent call last): 
    File "<string>", line 1, in <module> 
ImportError: No module named adir.helo 
$ touch adir/__init__.py 
$ python -c 'import adir.helo' 
hello world 

請參閱?僅在目錄adir和模塊helo.py中,嘗試import adir.helo失敗。如果__init__.py也存在於adir,然後 Python知道adir是一個包,因此導入成功。

7

你的問題不清楚。你到底在問什麼?

文件__init__.py是有那麼你的文件夾可以被定義爲a package,它可以讓你做這樣的事情:

from myapp.models import Something