【发布时间】:2016-03-04 19:34:23
【问题描述】:
我正在将一系列 python 文件放入他们自己的模块中。因此,我将它们放在一个目录中并添加了一个 init 文件。
为了让我能够按如下方式访问它们
from module import subclass
而不是
from module.submodule import subclass
我正在尝试将我想要公开的所有类导入到 init 文件中。然而,由于许多子模块相互引用(它是一个 Django 项目,所以所有类都是相互的外键),当我运行代码时,我很快就会遇到循环导入。
是否有正确的方法来组织 init.py 文件以避免这种情况发生?
例如:
File "/Users/.../models/__init__.py", line 4, in <module>
from Guests import Guest
File "/Users/.../models/Guests.py", line 5, in <module>
from Logs import LogEntry
File "/Users/..../models/Logs.py", line 6, in <module>
from Staff import Staff
File "/Users/.../Staff.py", line 5, in <module>
from Properties... import Site
File "/Users/./Properties.py", line 7, in <module>
from Guests import Guest
ImportError: cannot import name Guest
【问题讨论】: