使用Flask-Modals渲染Bootstrap模态框时遇Jinja2 Markup导入错误
解决Flask-Modals导入Markup失败的问题
问题根源
Jinja2 3.1.0及以上版本已将Markup类从自身库迁移到markupsafe库,但Flask-Modals的源码仍在从jinja2导入Markup,导致触发ImportError。
可行解决方案
方案1:降级Jinja2到兼容版本
执行命令将Jinja2降级到3.0.x系列(比如3.0.3),这个版本仍支持从jinja2导入Markup:
pip install jinja2==3.0.3
方案2:修改Flask-Modals源码
找到Python环境中Flask-Modals的安装目录(错误提示路径:C:\Users\Samuel Osondu\AppData\Local\Programs\Python\Python310\lib\site-packages\flask_modals),打开modal.py文件,将第5行的:
from jinja2 import Markup
替换为:
from markupsafe import Markup
保存后重新运行代码即可,markupsafe是Flask生态的默认依赖,无需额外安装。
方案3:等待官方更新
若不想修改源码或降级依赖,可检查PyPI上Flask-Modals是否有适配Jinja2 3.1+的新版本;若无,可给项目提交issue推动官方修复兼容问题。
内容的提问来源于stack exchange,提问作者SamuelOsondu
相关产品推荐
相关产品推荐

