FastAPI 0.70导入fastapi.responses报ModuleNotFoundError如何解决?
报错原因
你当前使用的FastAPI 0.70版本低于fastapi.responses模块的最低支持版本,该模块是FastAPI在0.74.0版本才正式新增的,低版本FastAPI没有这个内置模块,所以会触发ModuleNotFoundError。
解决方案
两种方案二选一即可:
- 方案1:升级FastAPI到符合要求的版本
升级到0.74.0及以上版本即可兼容你当前的导入写法,执行安装命令:pip install --upgrade fastapi>=0.74.0
升级完成后原有代码无需修改即可正常运行。 - 方案2:不升级版本,修改导入路径
0.74.0版本之前的FastAPI响应类直接复用Starlette的内置响应,你只需把导入语句修改为:
其余代码无需调整,即可正常调用HTMLResponse功能。from starlette.responses import HTMLResponse
额外补充说明
你当前代码里的{{name}}是模板引擎语法,直接用HTMLResponse返回静态字符串不会自动解析替换变量,页面最终会显示Name is {{name}}而非预期的Name is fred,如果需要渲染动态变量,要么手动拼接HTML字符串,要么对接Jinja2等模板引擎实现变量渲染。
内容的提问来源于stack exchange,提问作者SKS81
相关产品推荐
相关产品推荐

