我有一个看起来像这样的文件夹结构:
myproject/
- flask_app/
- app.py
- templates/
- module1.py
- module2/
- db.py
- models/
尝试执行以下操作时,我在Flask应用程序中遇到ImportErrors:
from module2 import db
# or something else like
import module1
from flask import Flask
app = Flask(__name__)
if __name__ == "__main__":
app.run(debug=True)
这显然是因为Flask应用程序正在自己的子目录" flask_app"中运行。我通常会尝试通过运行它来解决这个问题:
python -m flask_app.app
但这似乎无法解决问题。
有没有办法从根文件夹运行我的烧瓶应用程序而不需要使用相对导入(使用旧版本的Python)
答案 0 :(得分:2)
当您运行python -m flask_app.app
时,很可能sys.path
不会包含myproject
路径。
最简单的方法是将顶级脚本放在myproject
目录中;我们称之为runsite.py
:
from flask_app.app import app
app.run(debug=True)
并使用Python运行:
$ python runsite.py