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