[Python] Flask AttributeError: module 'app' has no attribute 'run'

Discussão em 'Python' iniciado por Stack, Junho 20, 2025.

  1. Stack

    Stack Membro Participativo

    My Flask project is structured as follows:

    my_project
    │
    ├── app
    │ ├── __init__.py
    │ ├── api
    │ ├── static
    │ └── templates
    ├── config.py
    └── run.py


    app/__init__.py:

    from flask import Flask

    app = Flask(__name__)

    app.config.from_object('config')


    run.py

    from app import app

    app.run(
    host=app.config.get('HOST', '0.0.0.0'),
    port=app.config.get('PORT', 5000)
    )


    This worked before, but I'm trying to migrate my project from Python 2 to Python 3, and running python run.py no longer works. I get the following error:

    Traceback (most recent call last):
    File "/Users/rasmi/Projects/my_project/run.py", line 3, in <module>
    app.run(
    AttributeError: module 'app' has no attribute 'run'


    If I change the import style in run.py to match the one here:

    from .app import app

    app.run(
    host=app.config.get('HOST', '0.0.0.0'),
    port=app.config.get('PORT', 5000)
    )


    I get a different error:

    Traceback (most recent call last):
    File "/Users/rasmi/Projects/my_project/run.py", line 1, in <module>
    from .app import app
    ModuleNotFoundError: No module named '__main__.app'; '__main__' is not a package


    Wrapping my app.run() call in an if __name__ == '__main__': block yields the same results. What's causing this issue?

    Continue reading...

Compartilhe esta Página