Flask 烧瓶-尝试在非包装中进行相对导入

Flask 烧瓶-尝试在非包装中进行相对导入,flask,importerror,Flask,Importerror,关于如何构造一个Flask应用程序,我有: project/ __init__.py app.py models/ __init__.py base.py base.py from flask_sqlalchemy import SQLAlchemy db = SQLAlchemy() from .base import db def init_app(app): db.init_app

关于如何构造一个
Flask
应用程序,我有:

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

from flask_sqlalchemy import SQLAlchemy

db = SQLAlchemy()
from .base import db

def init_app(app):
    db.init_app(app)
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
型号/\uuuuu初始化.py

from flask_sqlalchemy import SQLAlchemy

db = SQLAlchemy()
from .base import db

def init_app(app):
    db.init_app(app)
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
project/\uuuuu init\uuuuu.py

from flask_sqlalchemy import SQLAlchemy

db = SQLAlchemy()
from .base import db

def init_app(app):
    db.init_app(app)
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
最后,在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

我做的对吗?我做错了什么?

我想你是通过以下方式运行你的程序的:

python project/app.py
在本例中,您不能将“项目”视为python包,这将导致出现错误。相反,您可以通过以下方式运行项目:

FLASK_APP=project.app flask run
可能重复的