ImportError: cannot import name 'escape' from 'jinja2'
ImportError: cannot import name 'escape' from 'jinja2'
我遇到了错误
ImportError: cannot import name 'escape' from 'jinja2'
尝试使用以下 运行 代码时 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 在最新版本 — 3.1.0 — released on March 24th, 2022.
中删除了这些功能
Markup
and escape
should be imported from MarkupSafe.
这里有两个选项:
此错误可能来自您的依赖项之一。
您应该考虑的第一件事是升级上述依赖项。
如果这是不可能的,你可以做的是,从这里将你的 Jinja 版本降级到仍然包含 escape
的版本,例如,在你的 requirements.txt 中明确添加它:
jinja2<3.1.0
或者,您的错误来自您编写的代码,因此您可以按照 Jinja 发行说明中的建议,通过从 MarkupSafe 导入它来修复它。
所以,你应该使用
from markupsafe import escape
而不是
from jinja2 import escape
Jinja 是 Flask 的依赖项,Flask V1.X.X 使用 Jinja 的 escape
模块,但是最近对 escape
模块的支持是 dropped in newer versions of Jinja.
要解决此问题,只需在 requirements.txt 中更新到更新版本的 Flask V2.X.X,其中 Flask 不再使用 escape
来自 Jinja 的模块。
Flask==2.1.0
此外,请注意 Flask V1.X.X 不再受团队支持。如果您想继续使用这个旧版本,this Github issue may help.
ImportError: cannot import name 'escape' from 'jinja2'
我在使用 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)
我遇到了错误
ImportError: cannot import name 'escape' from 'jinja2'
尝试使用以下 运行 代码时 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 在最新版本 — 3.1.0 — released on March 24th, 2022.
中删除了这些功能
Markup
andescape
should be imported from MarkupSafe.
这里有两个选项:
此错误可能来自您的依赖项之一。
您应该考虑的第一件事是升级上述依赖项。
如果这是不可能的,你可以做的是,从这里将你的 Jinja 版本降级到仍然包含escape
的版本,例如,在你的 requirements.txt 中明确添加它:jinja2<3.1.0
或者,您的错误来自您编写的代码,因此您可以按照 Jinja 发行说明中的建议,通过从 MarkupSafe 导入它来修复它。
所以,你应该使用
from markupsafe import escape
而不是
from jinja2 import escape
Jinja 是 Flask 的依赖项,Flask V1.X.X 使用 Jinja 的 escape
模块,但是最近对 escape
模块的支持是 dropped in newer versions of Jinja.
要解决此问题,只需在 requirements.txt 中更新到更新版本的 Flask V2.X.X,其中 Flask 不再使用 escape
来自 Jinja 的模块。
Flask==2.1.0
此外,请注意 Flask V1.X.X 不再受团队支持。如果您想继续使用这个旧版本,this Github issue may help.
ImportError: cannot import name 'escape' from 'jinja2'
我在使用 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)