我有一个看起来像这样的文件夹结构:
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
但这似乎并不能解决问题。
有没有一种方法可以从根文件夹中运行我的flask应用程序,而不必诉诸相对导入(使用旧版本的Python)
最佳答案
运行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