首页 > 解决方案 > 'flask run' 从源目录运行时找不到代码,而 'python -m flask run' 成功

问题描述

这与“-m 开关的目的是什么”不同,因为我正在谈论一个独立运行的函数(flask)并想知道为什么它与 -m 的工作方式不同。那里的答案并不能解决问题。

我有一个正在构建的烧瓶应用程序。它设置了代码的子目录,所以

setup.py
gallery/
   __init.py__
   models.py
   view.py

当我使用“python -m flask run”运行它时,它可以工作。当我像“烧瓶运行”一样运行它时,它不会。我找不到任何人知道这两个命令之间的实际区别是什么,所以我有点卡住了。

这是“烧瓶运行”的输出:

(venv)MacBook-Pro-4:Finished khunter$ export FLASK_APP=gallery
(venv)MacBook-Pro-4:Finished khunter$ flask run
Usage: flask run [OPTIONS]

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

关于差异所在的任何想法,以便我可以适当地使用“烧瓶运行”?

编辑:看起来我可以通过 pip install --editable 来获取我在那里的 setup.py 。

标签: pythonflask

解决方案


没有太多区别。当你跑步时python -m flask run,你就是在跑步flask/__main__.py

而当你跑的时候flask run,你就是在跑flask/cli.py

如您所见,第一个只是第二个的别名。虽然过去了as_module == True。需要额外处理的原因见评论。您可以自行检查。

我相信您的问题是由路径问题引起的。仔细检查您的路径是否正确。


推荐阅读