ImportError:没有名为application的模块
这个问题在这里已经有了答案:
我认为在Python 2中,你将不得不放空
__init__.py
文件在您的数据库目录中
首先你的数据库文件夹不是一个合适的python包。
Python中的每个包都是一个必须包含名为__init__.py.
的特殊文件的目录__init__.py.
这个文件可以是空的,它表明它所包含的目录是一个Python包,因此可以像导入模块一样导入它。 从学习python网站
其次(这只是一个建议),为了实施一个合适的命名空间,你应该在你的项目目录内创建一个以应用程序命名的包,并且在每个其他包之上:
myproject/
requirements.txt
setup.cfg
...
myapp/
__init__.py
app2.py
database/
__init__.py
dbconfig.py
请注意,包名称double总是小写,如果需要,请使用下划线作为分隔符而不是短划线。
命名空间将是:
myapp.database.dbconfig.db
所以从app2.py你可以做例如:
from .database.dbconfig import db
另外你的代码在app2.py和dbconfig.py中都声明了flask对象。 因此,app2.py模块中的application
对象未绑定到Sqlalchemy对象。 您应该在dbconfig中声明您的数据库,然后将其导入到app2.py中并使用init_app方法。
最后
平面比嵌套好
蟒蛇的禅宗
因此,这棵树可以简化为只包含myapp/__init__.py
包含模型和db对象以及flask app对象创建的myapp/__init__.py