我尝试在烧瓶restfull中使用复杂的结构,我的结构如下:
main.py
-models
-- __init__.py
--modelA.py
-resources
--__init__.py
--resourceA.py
我在main.py中有一个变量,我在models.modelA中需要此变量,在资源.resourceA中也需要model.modelA。至此一切正常。当我启动我的应用程序时,出现以下错误:
Traceback (most recent call last):
File "main.py", line 12, in <module>
from resources.resourceA import functionA
File "/var/www/project/resources/resourceA.py", line 11, in <module>
from models.modelA import *
File "/var/www/project/models/modelA.py", line 8, in <module>
from main import mainvariable
File "/var/www/project/main.py", line 12, in <module>
from resources.resourceA import functionA
ImportError: cannot import name functionA
希望您的帮助
您在这里基本拥有的就是循环导入。作为回溯状态,您的main
模块正在functionA
从中导入resources.resourceA
。并且resourceA
正在导入models.modelA
,而该导入又试图main
再次导入resources.resourceA
。
除非解决了特定的顺序,否则python解释器无法理解如何解析模块。但是,您可以以更简单的方式解决此问题。
如果models.modelA
不需要的模块级导入main
,则可以将导入转移到需要导入的函数/类范围。
有关循环进口的更多信息,请参见此处。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句