python
module_error
ai_generated
true
ImportError: 无法从部分初始化的模块 'app' 中导入 'db'(很可能是由于循环导入)
ImportError: cannot import name 'db' from partially initialized module 'app' (most likely due to a circular import)
ID: python/flask-circular-import
80%修复率
88%置信度
0证据数
2024-02-08首次发现
版本兼容性
| 版本 | 状态 | 引入 | 弃用 | 备注 |
|---|---|---|---|---|
| 3.x | active | — | — | — |
根因分析
两个模块在加载时互相导入,通常是 models 导入 app 而 app 又导入 models。
English
Two modules import each other at module load time, typically models importing app and app importing models.
解决方案
-
93% 成功率
def create_app(): app = Flask(__name__) db.init_app(app) return app -
91% 成功率
# extensions.py from flask_sqlalchemy import SQLAlchemy db = SQLAlchemy()
无效尝试
常见但无效的做法:
-
85% 失败
Only changes which side fails first; cycle remains.
-
90% 失败
Leaves db undefined and crashes later.