Flask - Попытка относительного импорта в неупакованном виде - PullRequest
0 голосов
/ 27 декабря 2018

После этого учебника о том, как структурировать приложение Flask, у меня есть:

project/
       __init__.py
       app.py
       models/
             __init__.py
             base.py

base.py

from flask_sqlalchemy import SQLAlchemy

db = SQLAlchemy()

модели / __ init __. Py

from .base import db

def init_app(app):
    db.init_app(app)

проект / __ init __. Py

from flask import Flask

def create_app()
    from . import models, routes, services
    app = Flask(__name__)
    models.init_app(app)
    # routes.init_app(app)
    # services.init_app(app)
    return app

наконец, в приложении.py , я пытаюсь запустить его:

from . import create_app

app = create_app()

if __name__ == '__main__':
    app.run(use_reloader=True, threaded=True, debug=True)

но я получаю ошибку:

    from . import create_app
ValueError: Attempted relative import in non-package

Я правильно строю, что я делаю неправильно?

1 Ответ

0 голосов
/ 23 мая 2019

Я предполагаю, что вы запускаете вашу программу следующим образом:

python project/app.py

В этом случае вы не рассматриваете свой "проект" как пакет python, который вызовет полученную ошибку.Вместо этого вы можете запустить свой проект с:

FLASK_APP=project.app flask run
...