运行简单Flask程序报BaseResponse导入错误问题咨询
报错原因
这个导入错误和你写的Flask业务代码没有关系,是本地Python环境里Flask和它的依赖Werkzeug版本不兼容导致的:
Werkzeug在2.1.0及之后的版本中,删除了werkzeug.wrappers模块下的BaseResponse导出项,你当前安装的Flask版本偏旧,代码里还在引用这个已经被移除的对象,所以启动时直接抛错。
你写的first.py里的路由、启动逻辑全部正确,不需要改这部分代码。
解决方法
两种方案选一种执行就行,推荐第一种:
- 升级Flask到最新版本
打开Anaconda自带的命令提示符,执行下面的命令,pip会自动安装和当前环境依赖匹配的最新版Flask,安装完成直接运行原代码即可:pip install --upgrade flask - 降级Werkzeug到兼容版本(仅当你因为项目要求必须保留当前旧版本Flask时使用)
在命令行执行下面的命令,把Werkzeug固定到还保留BaseResponse接口的2.0.3版本,就能和旧版Flask正常适配:pip install werkzeug==2.0.3
验证
操作完成后重新运行first.py,看到Flask输出本地运行地址后,访问http://127.0.0.1:5000就能看到返回的"Henlooo"内容,报错不会再出现。
内容的提问来源于stack exchange,提问作者Rommal
相关产品推荐
相关产品推荐

