django项目中的许多目录都包含__init__.py
,我认为它将用作某些内容的初始化。这个__init__.py
在哪里使用?
答案 0 :(得分:11)
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
是一个包,因此导入成功。
答案 1 :(得分:7)
你的问题不明确。你到底在问什么?
文件__init__.py
就在那里,因此您的文件夹可以定义为a package,可以执行以下操作:
from myapp.models import Something