导入者无法从flask#u app导入app和bcrypt,并且可以';t从models.py导入数据库 这首先发生 回溯(最近一次呼叫最后一次): 文件 “c:\users\cristovao\documents\mqs\u development\flaskexperiment\env\lib\site packages\flask\cli.py”,第240行,在locate\u应用程序中 __导入(模块名称) 文件“C:\Users\cristovao\Documents\MQS\u Development\FlaskExperiment\run.py”,第4行,在 从flask_应用程序导入应用程序#从flask_应用程序包内的uuu init_uuuuuuuuuuy.py导入 文件“C:\Users\cristovao\Documents\MQS\u Development\FlaskExperiment\flask\u app\uuuuuuuu init\uuuuuuuuuuuuuu.py”,第6行,在 从flask_应用程序模型导入数据库 文件“C:\Users\cristovao\Documents\MQS\u Development\FlaskExperiment\flask\u app\models.py”,第2行,在 来自flask_应用程序导入应用程序,bcrypt ImportError:无法从“flask\u app”导入名称“app”(C:\Users\cristovao\Documents\MQS\u Development\FlaskeExperiment\Flaske\u app\\ uuuuuuuuu.py) 然后在models.py中,在这个错误之后,我从flask\uuuuu应用程序中写入 回溯(最近一次呼叫最后一次): 文件“c:\users\cristovao\documents\mqs\u development\flaskexperiment\env\lib\site packages\flask\cli.py”,第240行,在locate\u应用程序中 __导入(模块名称) 文件“C:\Users\cristovao\Documents\MQS\u Development\FlaskExperiment\run.py”,第4行,在 从flask_应用程序导入应用程序#从flask_应用程序包内的uuu init_uuuuuuuuuuy.py导入 文件“C:\Users\cristovao\Documents\MQS\u Development\FlaskExperiment\flask\u app\uuuuuuuu init\uuuuuuuuuuuuuu.py”,第6行,在 从flask_应用程序模型导入数据库 文件“C:\Users\cristovao\Documents\MQS\u Development\FlaskExperiment\flask\u app\models.py”,第2行,在 来自烧瓶应用程序。初始导入应用程序,bcrypt 文件“C:\Users\cristovao\Documents\MQS\u Development\FlaskExperiment\flask\u app\uuuuuuuu init\uuuuuuuuuuuuuu.py”,第6行,在 从flask_应用程序模型导入数据库 ImportError:无法从“flask\u app.models”(C:\Users\cristovao\Documents\MQS\u Development\FlaskExperiment\flask\u app\models.py)导入名称“db”)

导入者无法从flask#u app导入app和bcrypt,并且可以';t从models.py导入数据库 这首先发生 回溯(最近一次呼叫最后一次): 文件 “c:\users\cristovao\documents\mqs\u development\flaskexperiment\env\lib\site packages\flask\cli.py”,第240行,在locate\u应用程序中 __导入(模块名称) 文件“C:\Users\cristovao\Documents\MQS\u Development\FlaskExperiment\run.py”,第4行,在 从flask_应用程序导入应用程序#从flask_应用程序包内的uuu init_uuuuuuuuuuy.py导入 文件“C:\Users\cristovao\Documents\MQS\u Development\FlaskExperiment\flask\u app\uuuuuuuu init\uuuuuuuuuuuuuu.py”,第6行,在 从flask_应用程序模型导入数据库 文件“C:\Users\cristovao\Documents\MQS\u Development\FlaskExperiment\flask\u app\models.py”,第2行,在 来自flask_应用程序导入应用程序,bcrypt ImportError:无法从“flask\u app”导入名称“app”(C:\Users\cristovao\Documents\MQS\u Development\FlaskeExperiment\Flaske\u app\\ uuuuuuuuu.py) 然后在models.py中,在这个错误之后,我从flask\uuuuu应用程序中写入 回溯(最近一次呼叫最后一次): 文件“c:\users\cristovao\documents\mqs\u development\flaskexperiment\env\lib\site packages\flask\cli.py”,第240行,在locate\u应用程序中 __导入(模块名称) 文件“C:\Users\cristovao\Documents\MQS\u Development\FlaskExperiment\run.py”,第4行,在 从flask_应用程序导入应用程序#从flask_应用程序包内的uuu init_uuuuuuuuuuy.py导入 文件“C:\Users\cristovao\Documents\MQS\u Development\FlaskExperiment\flask\u app\uuuuuuuu init\uuuuuuuuuuuuuu.py”,第6行,在 从flask_应用程序模型导入数据库 文件“C:\Users\cristovao\Documents\MQS\u Development\FlaskExperiment\flask\u app\models.py”,第2行,在 来自烧瓶应用程序。初始导入应用程序,bcrypt 文件“C:\Users\cristovao\Documents\MQS\u Development\FlaskExperiment\flask\u app\uuuuuuuu init\uuuuuuuuuuuuuu.py”,第6行,在 从flask_应用程序模型导入数据库 ImportError:无法从“flask\u app.models”(C:\Users\cristovao\Documents\MQS\u Development\FlaskExperiment\flask\u app\models.py)导入名称“db”),flask,python-import,Flask,Python Import,当我使用flask run运行我的应用程序时,它会给我这些导入错误:无法将app和bcrypt从flask_app导入models.py,也无法将db从models.py导入uuuu init_uupy。我不明白为什么run.py被从我的包(flask\uu app)中分离出来。当我使用你的代码时,由于循环导入,我得到了一个错误 and then in models.py after this error I write from flask__app.__init__ import app

当我使用flask run运行我的应用程序时,它会给我这些导入错误:无法将app和bcrypt从flask_app导入models.py,也无法将db从models.py导入uuuu init_uupy。我不明白为什么run.py被从我的包(flask\uu app)中分离出来。

当我使用你的代码时,由于循环导入,我得到了一个错误

 and then in models.py after this error I write from flask__app.__init__ import app bcrypt and I got another error

    Traceback (most recent call last):
  File "c:\users\cristovao\documents\mqs_development\flaskexperiment\env\lib\site-packages\flask\cli.py", line 240, in locate_app
    __import__(module_name)
  File "C:\Users\cristovao\Documents\MQS_Development\FlaskExperiment\run.py", line 4, in <module>
    from flask_app import app  # importing from __init__.py within flask_app package
  File "C:\Users\cristovao\Documents\MQS_Development\FlaskExperiment\flask_app\__init__.py", line 6, in <module>
    from flask_app.models import db
  File "C:\Users\cristovao\Documents\MQS_Development\FlaskExperiment\flask_app\models.py", line 2, in <module>
    from flask_app.__init__ import app, bcrypt
  File "C:\Users\cristovao\Documents\MQS_Development\FlaskExperiment\flask_app\__init__.py", line 6, in <module>
    from flask_app.models import db
ImportError: cannot import name 'db' from 'flask_app.models' (C:\Users\cristovao\Documents\MQS_Development\FlaskExperiment\flask_app\models.py)
当我从
models.py中删除这一行时,我就可以摆脱它

ImportError: cannot import name 'app' from partially initialized module 'flask_app' (most likely due to a circular import) (/home/jugmac00/Tests/stackoverflow/flask_app/__init__.py)
摆脱循环导入的最简单方法是使用应用程序工厂模式

我花了一段时间才理解这个应用程序工厂模式,但尝试理解和使用它确实是值得的

今年的Flask大会上有一段精彩的视频:


如果这听起来很难,那么我的建议是。。。只需将所有内容放在一个文件中即可-这并不太糟糕,除非应用程序变得非常庞大。

请在问题上方正确地发布完整的错误消息,包括行号formatted@J.G.我已经编辑了我的帖子,希望有用
models.py

from flask_sqlalchemy import SQLAlchemy 
from flask_app import app, bcrypt

db = SQLAlchemy()
run.py

from flask_app import app  

if __name__ == '__main__': 
  app.run(debug=True) 
 This happens first 
 Traceback (most recent call last):


File 
   "c:\users\cristovao\documents\mqs_development\flaskexperiment\env\lib\site-packages\flask\cli.py", line 240, in locate_app
    __import__(module_name)
  File "C:\Users\cristovao\Documents\MQS_Development\FlaskExperiment\run.py", line 4, in <module>
    from flask_app import app  # importing from __init__.py within flask_app package
  File "C:\Users\cristovao\Documents\MQS_Development\FlaskExperiment\flask_app\__init__.py", line 6, in <module>
    from flask_app.models import db
  File "C:\Users\cristovao\Documents\MQS_Development\FlaskExperiment\flask_app\models.py", line 2, in <module>
    from flask_app import app, bcrypt
ImportError: cannot import name 'app' from 'flask_app' (C:\Users\cristovao\Documents\MQS_Development\FlaskExperiment\flask_app\__init__.py)
 and then in models.py after this error I write from flask__app.__init__ import app bcrypt and I got another error

    Traceback (most recent call last):
  File "c:\users\cristovao\documents\mqs_development\flaskexperiment\env\lib\site-packages\flask\cli.py", line 240, in locate_app
    __import__(module_name)
  File "C:\Users\cristovao\Documents\MQS_Development\FlaskExperiment\run.py", line 4, in <module>
    from flask_app import app  # importing from __init__.py within flask_app package
  File "C:\Users\cristovao\Documents\MQS_Development\FlaskExperiment\flask_app\__init__.py", line 6, in <module>
    from flask_app.models import db
  File "C:\Users\cristovao\Documents\MQS_Development\FlaskExperiment\flask_app\models.py", line 2, in <module>
    from flask_app.__init__ import app, bcrypt
  File "C:\Users\cristovao\Documents\MQS_Development\FlaskExperiment\flask_app\__init__.py", line 6, in <module>
    from flask_app.models import db
ImportError: cannot import name 'db' from 'flask_app.models' (C:\Users\cristovao\Documents\MQS_Development\FlaskExperiment\flask_app\models.py)
ImportError: cannot import name 'app' from partially initialized module 'flask_app' (most likely due to a circular import) (/home/jugmac00/Tests/stackoverflow/flask_app/__init__.py)
from flask_app import app, bcrypt