[Solved] Flask – ImportError: No module named app
First I created
from flask import Flask app = Flask(__name__)
Then in a separate file, in the same directory,
from app import app app.run( debug = True )
When I try to run
run.py, I get the error
Traceback (most recent call last): File "run.py", line 1, in <module> from app import app ImportError: No module named app
__init__.py is imported using a directory. if you want to import it as
app you should put
__init__.py file in directory named
a better option is just to rename
This is probably an error in flask application’s folder structure.
Anyone looking for a simple beginner-friendly structure for the flask project may find this helpful:
|__movies |__run.py |__app ??? templates ? ??? index.html ? ??? signup.html ??? __init__.py ??? routes.py
Here ‘movies‘ is the name given for the main application. It contains ‘run.py‘ and a folder called ‘app‘.
‘app‘ folder contains all necessary flask files such as ‘templates‘ folder, ‘__init __.py‘, and ‘routes.py‘.
from app import app
from flask import Flask app = Flask(__name__) from app import routes app.run(debug=True)
from app import app def index(): return "Hello, World!"
__init__.py file needs to go in the folder named app, not the same directory as the run.py file.
from app import app is looking in the app folder, so the
__init__.py file needs to sit in there.
Ensure to set your PYTHONPATH to the src/ directory as well. Example
Just rename your file to app.py and it will works.
export PYTHONPATH=/path/to/your/src && python app/main.py works
I solved this as follows –
$export FLASK_APP=run $flask run
After executing this command. I don’t get any error, my app running smoothly.