Flask-Migrate 命令“flask db init”找不到应用程序文件

mco*_*gal 5 python flask flask-sqlalchemy flask-migrate

首先,我正在关注此处发布的 Python Flask 教程:https : //scotch.io/tutorials/build-a-crud-web-app-with-python-and-flask-part-one

一切顺利,直到“迁移”部分执行:

$ flask db init
Run Code Online (Sandbox Code Playgroud)

...失败,出现以下错误:

Usage: flask db init [OPTIONS]

Error: The file/path provided (run) does not appear to exist.  Please verify the path is correct.  If app is not on PYTHONPATH, ensure the extension is .py
Run Code Online (Sandbox Code Playgroud)

我知道 $FLASK_APP 环境变量已设置,因为此命令执行良好:

$ flask run
Run Code Online (Sandbox Code Playgroud)

任何人都可以提出为什么在运行应用程序时执行得很好,但在尝试创建迁移存储库时却没有?

我在该主题的其他地方能找到的最接近的地方是:Flask can't find app file,但 pre-pending withpython -m在这两种情况下对我来说都不起作用。

小智 6

就我而言,我必须这样做

python3 -m flask db init
Run Code Online (Sandbox Code Playgroud)

没有提到python3 -m,它显示

zsh: command not found: flask
Run Code Online (Sandbox Code Playgroud)


mco*_*gal 3

该命令flask run成功启动了应用程序。

该命令flask db init失败并出现问题中报告的错误。

所以我尝试了python run.py,但未能通过报告未满足的依赖项来启动应用程序,其中models.py实际上是导入中的拼写错误。修复拼写错误并重新运行python run.py成功。

然后我flask run又试了一下,还是没问题。然后flask db init……终于成功了。

报告的错误似乎无法找到,run.py要么是误导,要么掩盖了它可以执行的真正根本原因。