ModuleNotFoundError: No module named 'flask'

Issue

After reading title of this post, don’t try to make duplicate first because herewith content may be asked in different way. Btw, I’m very new in python and start learning now for work requirement.

here are my dependencies

virtualenv --version => 15.0.2

pip --version => 19.0.3

flask --version => 1.0.2, Python 2.7.10 (default, Aug 17 2018, 19:45:58)

python --version => 3.7.1

And, here is my source code of main.py

from flask import Flask
app = Flask(__name__)

@app.route("/")
def home():
    return "Hello, World!"

Problem is following error encountered when I render like python main.py

Traceback (most recent call last): File “main.py”, line 1, in

from flask import Flask ModuleNotFoundError: No module named ‘flask’

But when I render like FLASK_APP=main.py flask run, it was working. Please let me know how’s difference between python ... and FLASH_APP= ...

Solution

pip can for some reason point to system-wide pip (which on many systems corresponds to Python 2.7). In order to use pip from the virtualenv, use python -m pip command. The following command will do the trick:

pip uninstall flask && python -m pip install flask

Another possibility is that you installed flask via apt and not pip. Here’s the difference between the two: What is the difference between `sudo apt install python3-flask` and `pip3 install Flask`?

So now the flask command is available system-wide.

If this is the case, uninstalling flask with apt and installing it with pip should do the trick:

sudo apt remove python-flask
pip install flask

(this is my guess that the apt package is called python-flask.

Answered By – Pavel Vergeev

This Answer collected from stackoverflow, is licensed under cc by-sa 2.5 , cc by-sa 3.0 and cc by-sa 4.0

Leave a Reply

(*) Required, Your email will not be published