我有一个烧瓶应用程序结构如下:
/public_html
/content
/accounts
__init__.py
/classes
__init__.py
mycode.py
/forms
__init__.py
myform.py
/routes
__init__.py
myroute.py
/activity
/comments
/media
/messages
...
__init__.py
/media
__build__.py
__config__.py
public_html / content中的 init 看起来像这样:
from accounts.classes.mycode import *
from accounts.forms.mycode import *
from accounts.routes.mycode import *
#..... etc .... until I've imported all the packages
并且在每个文件中,比如mycode.py我有一个循环导入回到这样的内容:
from content import *
#The rest of my code goes here.
它对我来说效果很好,但是我遇到了一个构造其余导入的问题,因为我需要调用模块来说:accounts.routes.mycode
在它实际导入之前。结果我最终得到NameError: global name 'functionincode' is not defined
。
我可以通过在没有冲突的情况下导入不同的函数来暂时解决问题,但我的代码变得讨厌。我真的不希望这些大量的进口产品都以特定的顺序相互依赖。
我有什么方法可以重新构建进口产品,以免出现冲突?我正在考虑每个软件包,例如content.accounts
将 init .py导入其中的所有内容,然后在每个accounts.classes.mycode.py
中导入其他所有内容,例如:
from accounts import *
from activity import *
etc ...
但是我希望能有一个更容易解决的问题。
谢谢!