1
我正在将一系列python文件导入到自己的模块中。因此,我把它们放在一个目录中,并添加了一个init文件。组织__init__.py文件时出现循环导入错误
为了让我成为访问它们如下
from module import subclass
而不是
from module.submodule import subclass
我试图导入所有我想在暴露给初始化文件中的类。然而,由于许多子模块彼此相互引用(它是一个Django项目,所以所有的类都是外键的),当我运行代码时,我很快就会运行到循环导入。
有没有正确的方法来组织初始 .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
的问题是,有作用在所有其他的Django模型的记录更改,以便将绑在一起的一切,但随后的代码为O测井模型(3K),线长,这是有点失控。它没有太多,他们直接相互依赖 - A呼叫B,但B是外键A。 – JMzance
@JMzance我已经用解决方法更新了答案。 –
由于Django外键是类变量,我也不能'隐藏'函数定义中的导入。 – JMzance