首页 > 解决方案 > 如何修复烧瓶运行与 python run.py 之间的导入

问题描述

我目前正在使用烧瓶开发一个网络应用程序。我当前的工作流程是在命令行上运行以下内容。

$ set FLASK_APP=run.py
$ flask run

这一直运行良好,但由于某种原因,每当我尝试通过不同方式运行时,导入就会中断

$ python run.py

这是我的文件结构

init.py
app.py
run.py
database/
    models.py     
calculators/
    calc.py

这是我的运行文件:

from .app import create_app, create_db # this breaks
from flask_migrate import Migrate

app = create_app()
db = create_db(app)
migrate = Migrate(app,db, compare_type=True)

if __name__ == "__main__":
    app.run(debug=True)

我可以run.py通过更改.appapp

models.py但是,当我尝试引用时,删除句点对我不起作用calc.py

from ..calculators import calc  #this line breaks

# ..More python code..

我继续收到错误ValueError: attempted relative import beyond top-level package

这应该发生吗?我发现的所有部署软件都利用了python run.py运行而不是烧瓶运行。我是否必须重写所有导入以适应一种导入方案与另一种导入方案?如果没有简短的答案,如果有任何我可以使用的术语/文档可以帮助我熟悉/更好地编写导入,我将不胜感激。谢谢!

标签: pythonflaskimportsqlalchemy

解决方案


推荐阅读