ImportError: cannot import name ‘escape’ or ‘markup’ from ‘jinja2’

Total
0
Shares

According to Jinja project, escape and markup should be imported from MarkupSafe. These functions are removed from jinja version 3.1.0.

If you are using jinja version <3.1.0 or flask version <V2, then you will get ImportError: cannot import name ‘escape’ or ‘markup’ from ‘jinja2’.

Solution

The solution to this issue is to either downgrade jinja to match compatible version of Flask, or upgrade Flask to version 2+.

Open your requirements.txt file and add this to the end of file –

Flask==2.1.0

Or, you can use MarkupSafe package –

>>> from jinja2.utils import markupsafe 
>>> markupsafe.Markup()

Or, you can also upgrade all the libraries listed in requirements.txt file –

pip install --upgrade <requirements.txt>

Conclusion

Flask has a dependency on jinja and that’s why you are getting this error. A simple upgrade will be enough to resolve it.