首页 > 解决方案 > Flask在开发模式下无法运行,找不到flask模块

问题描述

我在 Windows 上,使用 git bash。如果 Flask 不在开发模式下,我可以运行它。如果我将 FLASK_ENV 设置为“开发”以尝试触发调试和其他有用的事情,那么会flask run失败。

错误消息非常奇特。

$ flask run
 * Serving Flask app "Neuroethics_Behavioral_Task" (lazy loading)
 * Environment: development
 * Debug mode: on
 * Restarting with stat
d:\miniconda3\python.exe: No module named D:\miniconda3\Scripts\flask

奇怪的是……在D:\miniconda3\Scripts 目录下,有一个flask.exe 或flask 应用程序文件。通过输入“where flask”,我得到了返回D:\miniconda3\Scripts\flask.exe。所以这个可执行文件肯定存在于他们试图寻找的位置,但即便如此,当我尝试进行烧瓶运行时,Flask 似乎也找不到它。

我该如何处理?

编辑:更多信息。这似乎与我之前在 Anaconda 中安装了 Flask,使用 conda uninstall flask 将其从 anaconda 中删除,然后我用 pip 安装它的事实有关。

where flaskD:\miniconda3\Scripts\flask.exe

pip show flaskLocation: d:\miniconda3\lib\site-packages. 但是 pip 提供的位置不包含任何 flask.exe 文件。

标签: pythonflask

解决方案


建议使用该flask run命令,但目前 Windows 上的 Werkzeug 存在问题。在修复错误之前,请参阅Windows 上的 Flask reloader crashs with "no module named Scripts\flask" 以获取解决方法。

如果您不想使用该解决方法,您可以添加一个if __name__ == "__main__"块并app.run(debug=True)直接调用,将​​其作为python app.py. 同样,这不是运行 Flask 的推荐方式,并且还有另一种解决该错误的方法。

from flask import Flask

app = Flask(__name__)

@app.route("/")
def hello():
    return "Hello World!"

if __name__ == "__main__":
    app.run(debug=True)

推荐阅读