我尝试在flask restfull中使用复杂的结构,我的结构如下:
main.py
-models
-- __init__.py
--modelA.py
-resources
--__init__.py
--resourceA.py
我在main.py中有一个变量,我在models.modelA中需要这个变量,我还需要resources.resourceA中的models.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
我希望你的帮助
答案 0 :(得分:0)
这里你基本上有一个叫做循环导入。正如追溯所述,您的main
模块正在从functionA
导入resources.resourceA
。 resourceA
正在导入models.modelA
,而main
又会尝试导入resources.resourceA
,这又需要models.modelA
。
除非解决了特定的顺序,否则python解释器无法理解如何解析模块。但是,您可以更轻松地解决此问题。
如果main
不需要MU <- getSymbols("MU",src="google", auto.assign=FALSE) #Correct
getSymbols("PCU334413334413A",src="FRED", from='2013-01-02', to = '2017-11-06')
[1] "PCU334413334413A"
SKH <- getSymbols('000660.ks',src='yahoo', auto.assign=FALSE) #Correct
Error in curl::curl_download(cu, tmp, handle = h) : SSL connect error
的模块级别导入,您可以将导入转移到需要导入的函数/类范围。
有关circular imports的更多信息,请参阅此处。