我很难使用“python”方法运行我的烧瓶应用程序。我使用没有任何问题
export FLASK_APP=microblog.py
flask run
但尝试使用
python microblog.py
会导致以下错误
ImportError: No module named 'app'
我的 microblog.py 文件如下所示:
from app import app, db
from app.models import User
@app.shell_context_processor
def make_shell_context():
return {'db': db, 'User': User}
我的
__init__.py
文件看起来像这样:
from flask import Flask
from config import Config
from flask_sqlalchemy import SQLAlchemy
from flask_migrate import Migrate
from flask_login import LoginManager
app = Flask(__name__)
app.config.from_object(Config)
db = SQLAlchemy(app)
migrate = Migrate(app, db)
login = LoginManager(app)
login.login_view = 'login'
from app import routes
if __name__ == '__main__':
app.run()
这些文件所在的文件夹称为“app”。我试过把
if __name__ == '__main__':
app.run()
microblog.py 文件中也是如此,同样不成功。
我还有模板/静态/等文件夹。和一个路由文件,我在其中运行所有
@app.route()
命令
再次,当我在终端中运行“flask run”时,一切正常,当我尝试使用“python microblog.py”时,它就崩溃了。我正在尝试在 AWS 上启动该应用程序,几乎每个教程都要求使用“python”方法调用应用程序。如有任何帮助,我们将不胜感激。
[已解决]
我的目录搞混了。我将
microblog.py
拉回到 app
文件夹之外,并且能够毫无问题地运行 python microblog.py
,并且无需编辑任何内容。
事后看来,我可能应该一开始就发布所有内容的文件结构。
在这一行
from app import app, db
中,您尝试导入一个名为app.app
的模块,但它显然不存在于您的项目源中。
尝试在
app.py
路径中创建一个名为 app/
的文件,将 __init__.py
文件的所有内容复制并粘贴到其中。
您的
__init__.py
必须为空。这只是表明你的路径app/
是一个可导入的模块。
我已经尝试过这个,它在 Windows 上对我有用。
$env:FLASK_APP="hello.py"
flask run
就是这样