pythonflaskpython-babel

AttributeError: module 'jinja2.ext' has no attribute 'autoescape' while trying to use Flask-Babel


I am new to Flask and Babel and I have just started a project which will contain several languages. After I have generated the babel.cfg file, when I attempt to extract it with the command pybabel extract -F babel.cfg -o messages.pot ., I get the AttributeError: module 'jinja2.ext' has no attribute 'autoescape' error.

What can be the reason for this error and how can I fix it?

Thank you


Solution

  • With Jinja2 3.1, WithExtension and AutoEscapeExtension are built-in now. So you don't need these extensions anymore. Delete these extension from babel.cfg file

    [python: **.py]
    [jinja2: **/templates/**.html]
    ;extensions=jinja2.ext.auto escape,jinja2.ext.with_
    

    https://jinja.palletsprojects.com/en/3.1.x/changes/#version-3-0-0