我收到错误消息
ImportError:无法从“jinja2”导入名称“escape”
尝试使用以下requirements.txt运行代码时:
chart_studio==1.1.0
dash==2.1.0
dash_bootstrap_components==1.0.3
dash_core_components==2.0.0
dash_html_components==2.0.0
dash_renderer==1.9.1
dash_table==5.0.0
Flask==1.1.2
matplotlib==3.4.3
numpy==1.20.3
pandas==1.3.4
plotly==5.5.0
PyYAML==6.0
scikit_learn==1.0.2
scipy==1.7.1
seaborn==0.11.2
statsmodels==0.12.2
urllib3==1.26.7
试过
pip install jinja2
但是要求已经满足了
在 Windows 系统上运行此代码。
Jinja 是 Flask 的依赖项,Flask V1.X.X 使用来自 Jinja 的
escape
模块,但是最近对 escape
模块的支持在新版本的 Jinja 中被删除。
要解决此问题,只需在 requirements.txt 中更新到更新版本的 Flask V2.X.X,其中 Flask 不再使用来自 Jinja 的
escape
模块。
Flask>=2.2.2
另外,请注意团队不再支持 Flask V1.X.X。如果您想继续使用这个旧版本,这个 Github 问题可能会有所帮助。
发生这种情况是因为 Jinja 在最新版本 3.1.0 中删除了这些功能于 2022 年 3 月 24 日发布.
和Markup
应该从 MarkupSafe 导入。escape
这里有两个选项:
此错误是否来自您的依赖项之一。
您应该考虑的第一件事是升级上述依赖项。
如果这不可能,您可以从这里将您的 Jinja 版本降级为仍包含
escape
的版本,例如,将其明确添加到您的requirements.txt:
jinja2<3.1.0
或者,您的错误来自您编写的代码,因此您可以按照 Jinja 发行说明中的建议,通过从 MarkupSafe 导入它来修复它。
所以,你应该使用
from markupsafe import escape
代替
from jinja2 import escape
只需更新你的 Flask 版本,它对我有用
Flask==2.1.0
所以发生在我身上的是,我在 github 上克隆了一个 repo,并安装了 flask,并使用命令
pip install -r requirements.txt
激活了我的 virtualenv 但是当我尝试运行服务器时,它出现了错误:
ImportError:无法从“jinja2”导入名称“escape”
所以我所做的是运行命令
pip uninstall flask
并通过运行 pip install flask
重新安装它,然后再次运行我的服务器,然后它工作了。
简单的解决方案
pip uninstall flask
然后
pip install flask
ImportError:无法从“jinja2”导入名称“escape”
这发生在我使用 Voila 和 jupyter notebook 并使用以下方法解决:
C:\Users\admin\anaconda3\Lib\site-packages\nbconvert\filters\ansi.py
from markupsafe import escape
text = jinja2.utils.escape(text)
改成text = escape(text)
这对我有用!
!pip install --upgrade babel
!pip install --upgrade python-dateutil
!pip install --upgrade flask-moment
!pip install --upgrade flask-wtf
!pip install --upgrade flask_sqlalchemy
根据 change logs 对于 3.1.x 以上的版本,需要使用 escape from markupsafe 而不是来自 jinja2
所以使用
escape
做
from markupsafe import escape