ImportError: невозможно импортировать имя «escape» из «jinja2»

я получаю сообщение об ошибке

ImportError: невозможно импортировать имя «escape» из «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.

7 ответов

Jinja является зависимостью от Flask, и Flask V1.XX использует модуль от Jinja, однако недавно поддержка этого модуля была прекращена в более новых версиях Jinja.

Чтобы решить эту проблему, просто обновите Flask до более новой версии V2.XX в файле requirements.txt, где Flask больше не использует escapeмодуль от Jinja.

      Flask==2.1.0

Также обратите внимание, что Flask V1.XX больше не поддерживается командой. Если вы хотите продолжать использовать эту старую версию, эта проблема Github может помочь.

Просто обновите версию Flask, у меня работает

      Flask==2.1.0

Итак, что случилось со мной, так это то, что я клонировал репозиторий на github и установил флягу с моей виртуальной средой, активированной с помощью командыpip install -r requirements.txtно когда я попытался запустить сервер, у меня возникла ошибка:

ImportError: невозможно импортировать имя «escape» из «jinja2»

Итак, что я сделал, это запустил командуpip uninstall flaskи переустановил его, запустивpip install flaskа затем снова запустил мой сервер, после чего все заработало.

ПРОСТОЕ РЕШЕНИЕ

      pip uninstall flask

затем

      pip install flask 

Согласно журналам изменений для версии >= 3.1.x, необходимо использовать escape из markupsafe, а не из jinja2.

так что использоватьescapeделать

      from markupsafe import escape

Проблема решена путем простого понижения версии jinja2 до низкостабильной версии.

      pip install Jinja2==3.0.3

ссылка

ImportError: невозможно импортировать имя «escape» из «jinja2»

Это случилось со мной, используя Voila с ноутбуком jupyter, и решил, используя метод ниже:

  1. переходим в этот каталог C:\Users\admin\anaconda3\Lib\site-packages\nbconvert\filters\ansi.py
  2. добавление этой строки в первый файл from markupsafe import escape
  3. Также измените эту строку кода 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
Другие вопросы по тегам