Ошибка ImportError: невозможно импортировать имя «escape» из «jinja2». Обычно возникает ошибка «функция escape была удалена в версии 3.1.0 jinja2».
Чтобы исправить ошибку ImportError: cannot import name ‘escape’ from ‘jinja2’, обновите версию Flask или исправьте операторы импорта, чтобы вместо этого импортировать escape из markupsafe.
Содержание
Воспроизведение ошибки
|
1 2 3 4 5 6 7 |
from jinja2 import escape template = '<h1>{{ data }}</h1>' content = {'data': 'Heat Waves!'} result = render_template_string(template, content) print(result) |
Выход
|
1 |
ImportError: cannot import name 'escape' from 'jinja2' |
Как и ожидалось, мы получили ImportError и уже увидели решение!
Как это исправить?
Решение 1. Обновите версию Flask
|
1 2 3 4 5 6 7 8 9 10 |
pip install Flask --upgrade pip3 install Flask --upgrade python -m pip install Flask --upgrade python3 -m pip install Flask --upgrade py -m pip install Flask --upgrade # 👇️ for Jupyter Notebook !pip install Flask --upgrade |
Если у вас более старая версия jinja2, обновите пакет с помощью следующей команды.
|
1 |
python3 -m pip install jinja2 --upgrade |
Он обновит существующий пакет, установленный на вашем компьютере.
Решение 2. Обновите операторы импорта, чтобы импортировать выход из «markupsafe».
Импортируйте метод escape из модуля markupsafe.
|
1 2 3 4 5 6 7 |
from markupsafe import escape value = escape("<p>database</p>") print(escape(value)) print(value + " <p>.com</p>") |
Выход
|
1 |
<p>database</p> <p>database</p> <p>.com</p> |
