Flask项目导入Blueprint报错:ModuleNotFoundError问题求助
解决Flask蓝图导入的ModuleNotFoundError问题
问题根源
你的resource文件夹缺少__init__.py文件,Python不会将没有该文件的文件夹识别为可导入的包;同时导入路径的上下文和运行方式也会影响导入有效性。
分步解决
1. 把resource转为Python包
在resource文件夹下创建一个空的__init__.py文件,修改后的文件结构应为:
├── app │ ├── resource │ │ ├── __init__.py │ │ └── user.py │ └── app.py
2. 选择正确的导入方式
方式一:相对导入(推荐在同一包内使用)
在app.py中使用相对路径导入蓝图:
from .resource.user import users
运行时需从项目根目录(app文件夹的上级目录)执行:
python -m app.app
方式二:绝对导入
如果偏好绝对导入,需要确保项目根目录被Python识别,可在app.py开头添加以下代码,将当前文件所在目录加入Python路径:
import sys import os sys.path.append(os.path.dirname(os.path.abspath(__file__)))
之后就可以使用绝对导入语句:
from app.resource.user import users
3. 确保蓝图注册正确
最后别忘了在app.py中注册蓝图:
from flask import Flask # 这里替换为你实际使用的导入语句 from .resource.user import users app = Flask(__name__) app.register_blueprint(users) if __name__ == '__main__': app.run()
内容的提问来源于stack exchange,提问作者Dhruvin Kalathiya
相关产品推荐
相关产品推荐

