Flask项目同级目录导入模块触发ImportError问题咨询
错误原因
- 相对导入用法不符合场景:
app.py是项目的入口启动文件,执行flask run时该文件会被视为顶层模块,不支持以.开头的相对导入语法。 - 包导出规则缺失:如果
promisebot/models/__init__.py中没有显式导出User类,直接从models模块导入User会找不到目标对象。
修复步骤
- 将导入语句修改为绝对导入:
把from .promisebot.models import User替换为from promisebot.models import User - 检查
src/promisebot/models/__init__.py文件,添加如下导出代码:from .user import User - 确认执行
flask run的工作目录对应src/文件夹,若仍报错可在app.py最开头添加搜索路径配置:import sys from pathlib import Path sys.path.append(str(Path(__file__).parent))
如果需要排查更具体的报错原因,可在src/目录下执行python app.py(需在app.py末尾添加if __name__ == '__main__': app.run()),能看到完整的错误栈信息。
内容的提问来源于stack exchange,提问作者timothyylim
相关产品推荐
相关产品推荐

