python - 从较低模块导入时出现 ImportError

标签 python python-2.7 flask

我试图在我的 Flask 项目的模块中导入一个名为 db 的对象(SQLAlchemy 对象),以便在我的模型中使用 SQLAlchemy(models.py)。假设我的包名为 Foo 并在他的 __init__.py 文件中包含 db 对象,当我尝试从 Foo 执行 导入 db,我收到以下错误:

ImportError: 无法导入名称数据库

我正在使用 Flask Blueprint 将我的项目分派(dispatch)到两个应用程序(仪表板和前端)中,每个应用程序都包含一个 __init__.py 文件。只有 models.py 抛出这个错误,我在我的 View 文件中导入了一些(作为导入登录管理器)并且一切顺利。

知道它可能是什么吗?

更新:回溯

Traceback (most recent call last):
    File "run.py", line 4, in <module>
        from kuchiyose import app
    File "/path_to_project/kuchiyose/kuchiyose/__init__.py", line 60, in <module>
        from kuchiyose import dashboard, frontend
    File "/path_to_project/kuchiyose/kuchiyose/dashboard/__init__.py", line 10, in <module>
        from dashboard import views
    File "/path_to_project/kuchiyose/kuchiyose/dashboard/__init__.py", line 10, in <module>
        from dashboard import views
    File "/path_to_project/kuchiyose/kuchiyose/dashboard/views.py", line 8, in <module>
        from kuchiyose.dashboard.models import User
    File "/path_to_project/kuchiyose/kuchiyose/dashboard/models.py", line 3, in <module>
        from kuchiyose import db

ImportError: cannot import name db

最佳答案

首先,感谢您的帮助。关于我的第二个问题:“如何将 Flask 模型导入 View 而不会出现循环导入问题(使用 SQLAlchemy 时)”,我找到了解决方案。它包括不将 SQLAlchemy 对象设置到应用程序 __init__.py 文件中,而是设置到 models.py 文件本身中。这样,您就可以毫无问题地将其导入到您的 views.py 文件中。

我的 models.py 文件,现在:

from kuchiyose import app
from flask.ext.sqlalchemy import SQLAlchemy

db = SQLAlchemy(app)

还有我的views.py

from kuchiyose.dashboard import models

关于python - 从较低模块导入时出现 ImportError,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15989928/

相关文章:

python - 排序列表输出: UTF-8

python - 如何消除 "unsupported operand type(s) for -: ' str' 和 'str' "错误如下?

python - Tkinter Canvas 不会显示整个照片图像

python - Django:将文件添加到表单会出现多个参数错误

python - Autobahn Wamp Protocol如何获取客户端IP地址?

python - Django:数据库配置不当,请提供引擎值。 (多个数据库)

python - 当 urllib2.urlopen 抛出异常时捕获响应正文

python - 如何在 Flask 中阻止子模板继承父 css 类

python - 在 Django 中,有没有办法使用 Flask 风格的路由语法来定义路由?

python - 如何将 Pandas 数据框显示为 flask 引导表?