Flask 3.0.2中无法导入escape的ImportError问题求助
解决Flask 3.0.2中无法导入escape的问题
错误原因
你遇到的ImportError: cannot import name 'escape' from 'flask'是因为Flask 3.0+版本已经移除了从flask包直接导出escape函数的支持,而《Python3进阶之路》的练习代码是基于旧版Flask编写的,两者版本不兼容导致报错。你的Flask安装路径是正常的(/usr/local/lib/python3.10/dist-packages是Python 3.10的标准全局安装路径),错误和路径无关。
解决方案
方案1:修改导入语句(推荐,适配新版本)
打开gothonweb/app.py,将原导入代码:
from flask import Flask, session, redirect, url_for, escape, request
拆分为两行,单独从markupsafe导入escape(markupsafe是Flask的依赖包,已随Flask安装):
from flask import Flask, session, redirect, url_for, request from markupsafe import escape
方案2:降级Flask到兼容版本
如果不想修改代码,可以将Flask降级到2.2.x版本(该版本仍支持从flask导入escape),执行以下命令:
pip install flask==2.2.5
执行完任一方案后,重新运行nosetests即可解决导入错误。
内容的提问来源于stack exchange,提问作者Dhivya
相关产品推荐
相关产品推荐

