烧瓶-尝试以非包装形式进行相对进口

时间:2018-12-27 20:14:53

标签: flask importerror

在遵循此tutorial关于如何构建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

最后,我尝试在 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 :(得分:0)

我猜您正在通过以下方式运行程序:

python project/app.py

在这种情况下,您不会将“项目”视为python包,这会引发错误。相反,您可以使用以下命令运行项目:

FLASK_APP=project.app flask run