【问题标题】:Flask - Attempted relative import in non-packageFlask - 尝试在非包中进行相对导入
【发布时间】:2019-05-25 19:09:36
【问题描述】:

按照这个tutorial 了解如何构建Flask 应用程序,我有:

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

base.py

from flask_sqlalchemy import SQLAlchemy

db = SQLAlchemy()

models/__init__.py

from .base import db

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

project/__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

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

【问题讨论】:

标签: flask importerror


【解决方案1】:

我猜你正在运行你的程序:

python project/app.py

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

FLASK_APP=project.app flask run

【讨论】:

    猜你喜欢
    • 2014-02-28
    • 2014-01-02
    • 1970-01-01
    • 2015-12-08
    • 2014-11-14
    • 1970-01-01
    • 2020-07-20
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多