导入错误:无法从“jinja2”导入名称“escape”

新手上路,请多包涵

我收到错误

导入错误:无法从“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 系统上运行此代码。

原文由 Bheshaj 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 2.3k
2 个回答

Jinja 是 Flask 的依赖项,Flask V1.XX 使用来自 Jinja 的 escape 模块,但是最近对 escape 模块的支持 在新版本的 Jinja 中被删除了

要解决此问题,只需在 requirements.txt 中更新到更新版本的 Flask V2.XX,其中 Flask 不再使用来自 Jinja 的 escape 模块。

 Flask==2.1.0

另请注意,团队不再支持 Flask V1.XX。如果您想继续使用这个旧版本, 这个 Github 问题可能会有所帮助。

原文由 Ryan 发布,翻译遵循 CC BY-SA 4.0 许可协议

发生这种情况是因为 Jinja 在 2022 年 3 月 24 日发布 的最新版本 3.1.0 中删除了这些功能。

Markupescape 应该从 MarkupSafe 导入。

这里有两个选项:

  1. 此错误来自您的依赖项之一。

您应该考虑的第一件事是升级上述依赖项。

如果这不可能,您可以从这里将您的 Jinja 版本降级为仍包含 escape 的版本,例如,将其显式添加到您的 requirements.txt 中:

    jinja2<3.1.0

  1. 或者,您的错误来自您编写的代码,因此您可以按照 Jinja 发行说明中的建议,通过从 MarkupSafe 导入它来修复它。

所以,你应该使用

   from markupsafe import escape

代替

   from jinja2 import escape

原文由 β.εηοιτ.βε 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进