Flask - ImportError: нет модуля с именем app

Сначала я создал __init__.py

from flask import Flask

app = Flask(__name__)

Затем в отдельном файле в том же каталоге run.py

from app import app 

app.run(
    debug = True
)

Когда я пытаюсь запустить run.py, я получаю сообщение об ошибке

Traceback (most recent call last):
  File "run.py", line 1, in <module>
    from app import app 
ImportError: No module named app

Ответ 1

__init__.py импортируется с использованием каталога. если вы хотите импортировать его как app, вы должны поместить файл __init__.py в каталог с именем app

лучший вариант - просто переименовать __init__.py в app.py

Ответ 2

Ваш файл __init__.py должен находиться в папке с именем app, а не в том же каталоге, что и файл run.py.

from app import app находится в папке приложения, поэтому файл __init__.py должен сидеть там.

Ответ 3

Вероятно, это ошибка в структуре папок приложения фляги.
Любой, кто ищет простую, удобную для начинающих структуру для проекта колбы, может найти это полезным:

   |__movies 
     |__run.py 
     |__app     
        ├── templates
        │   └── index.html
        │   └── signup.html
        └── __init__.py
        └── routes.py

Здесь "фильмы" - это название основного приложения. Он содержит "run.py" и папку "app". Папка "app" содержит все необходимые файлы фляги, такие как папка "templates", "__init __.py" и "rout.py".

Содержание:

run.py:

from app import app

__init__.py:

from flask import Flask

app = Flask(__name__)

from app import routes


app.run(debug=True)

rout.py:

from app import app

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

Ответ 4

Убедитесь, что вы установили PYTHONPATH в каталог src/. Пример export PYTHONPATH="$PYTHONPATH: /path/to/your/src"