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

Bhe*_*haj 125 compiler-errors jinja2 python-3.x pydash

我收到错误

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
Run Code Online (Sandbox Code Playgroud)

尝试过

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
Run Code Online (Sandbox Code Playgroud)

但要求已经满足了。
在 Windows 系统上运行此代码。

小智 178

Jinja 是 Fl​​ask 的依赖项,Flask V1.XX 使用Jinja 的模块,但是最近在较新版本的 Jinja 中删除了escape对该escape模块的支持。

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

Flask>=2.2.2
Run Code Online (Sandbox Code Playgroud)

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


β.ε*_*.βε 57

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

\n
\n

Markup并且escape应该从 MarkupSafe 导入。

\n
\n

您在这里有两个选择:

\n
    \n
  1. 此错误要么来自您的依赖项之一。
    \n您应该考虑的第一件事是升级所述依赖项。
    \n如果这是不可能的,您可以从这里将您的 Jinja 版本降级到仍包含 的版本escape,例如,将其显式添加到您的requirements.txt中:

    \n
    jinja2<3.1.0\n
    Run Code Online (Sandbox Code Playgroud)\n
  2. \n
  3. 或者,您的错误来自您编写的代码,因此您可以按照 Jinja 发行说明中的​​建议,通过从 MarkupSafe 导入它来修复它。

    \n

    所以,你应该使用

    \n
    jinja2<3.1.0\n
    Run Code Online (Sandbox Code Playgroud)\n

    代替

    \n
    from markupsafe import escape\n
    Run Code Online (Sandbox Code Playgroud)\n
  4. \n
\n


Aki*_*_MJ 16

只需更新您的 Flask 版本,它对我有用

Flask==2.1.0
Run Code Online (Sandbox Code Playgroud)


小智 9

所以我身上发生的事情是,我在 github 上克隆了一个存储库,并使用命令激活了我的 virtualenv 安装了 Flask,pip install -r requirements.txt但是当我尝试运行服务器时,它出现了错误:

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

所以我所做的就是运行命令pip uninstall flask并通过运行重新安装它pip install flask,然后再次运行我的服务器,然后它就工作了。

简单的解决方案

pip uninstall flask
Run Code Online (Sandbox Code Playgroud)

然后

pip install flask 
Run Code Online (Sandbox Code Playgroud)