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 может помочь.
Итак, что случилось со мной, так это то, что я клонировал репозиторий на 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, и решил, используя метод ниже:
- переходим в этот каталог
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