为何运行flask run命令时持续出现ImportError报错?
问题分析
报错ImportError: cannot import name 'escape' from 'jinja2'是Flask与Jinja2版本不兼容导致的:Jinja2 3.1+版本已将escape方法从顶层模块移至jinja2.utils,但当前使用的Flask版本仍在尝试从jinja2根模块导入该方法。
解决方法
- 降级Jinja2到兼容版本,在激活的虚拟环境中执行:
pip install jinja2==3.0.3 - 或升级Flask至适配新版本Jinja2的稳定版:
pip install --upgrade flask - 若上述方法无效,可彻底清理后重新安装:
pip uninstall flask jinja2 -y pip install flask - 确保操作始终在目标虚拟环境(venv)中执行,避免全局Python包干扰。
原始报错信息
Traceback (most recent call last): File "/Users/rachelpoverman/Desktop/Software Engineering Projects/Unit_22_Flask/22.1-intro/flask-intro-demo/video-demo/venv/bin/flask", line 7, in <module> from flask.cli import main File "/Users/rachelpoverman/Desktop/Software Engineering Projects/Unit_22_Flask/22.1-intro/flask-intro-demo/video-demo/venv/lib/python3.11/site-packages/flask/__init__.py", line 14, in <module> from jinja2 import escape ImportError: cannot import name 'escape' from 'jinja2' (/Users/rachelpoverman/Desktop/Software Engineering Projects/Unit_22_Flask/22.1-intro/flask-intro-demo/video-demo/venv/lib/python3.11/site-packages/jinja2/__init__.py)
内容的提问来源于stack exchange,提问作者rpovie
相关产品推荐
相关产品推荐

