Python:在包模块中从主文件导入变量

英素·怀特

我尝试在烧瓶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

希望您的帮助

nkprince007

您在这里基本拥有的就是循环导入。作为回溯状态,您的main模块正在functionA从中导入resources.resourceA并且resourceA正在导入models.modelA导入又试图main再次导入resources.resourceA

除非解决了特定的顺序,否则python解释器无法理解如何解析模块。但是,您可以以更简单的方式解决此问题。

如果models.modelA不需要的模块级导入main,则可以将导入转移到需要导入的函数/类范围。

有关循环进口的更多信息,请参见此处

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章