ImportError: No module named 'flask.ext'

Lewistrick picture Lewistrick · Mar 6, 2019 · Viewed 30.9k times · Source

When I import a Flask extension like this, it works fine:

from flask_module import Module

So the extension is installed correctly.

But whenever I try to import a Flask extension like this:

from flask.ext.module import Module

I get the following error: ImportError: No module named 'flask.ext'

What is going wrong here?

I'm not sure if this information is useful but anyway:

  1. I haven't found extensions that do work in the last way
  2. I use Windows 10, Python3.5 and Flask 1.0.2
  3. I'm in a virtual envirionment

Answer

Nick K9 picture Nick K9 · Mar 6, 2019

The "flask.ext" style of naming/importing modules has been deprecated for a number of years now. You should use the first style you described instead.

As for the suggestion that you install your flask packages globally, this somewhat defeats the purpose of using a venv in the first place. It makes it impossible to use pip freeze --local > requirements.txt to only save relevant packages, opening you up to package version conflicts.