启动Flask应用程序时出错,并显示错误“无法找到Flask应用程序”

时间:2019-08-29 23:26:42

标签: python flask

我是Flask的新手。要启动烧瓶应用程序,我做了python -m flask run,但反复出现错误

  

无法在模块“ app”中找到Flask应用程序或工厂。使用“ FLASK_APP = app:name指定一个。

我在Windows 10计算机上使用virtualenv

from flask import Flask

app = Flask(__name__)

@app.route('/')
def index():
    return "Hello, World!"

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

我希望网络服务器能够启动,并且能够导航到本地页面并查看“ Hello,World!”

9 个答案:

答案 0 :(得分:4)

重现问题并修复

您好,问题已复现 这是错误代码:

<块引用>

错误:无法在模块中找到 Flask 应用程序或工厂 “src.app”。使用“FLASK_APP=src.app:name 指定一个。

重现错误的步骤:

  1. 创建一个名为 app.py
  2. 的文件
  3. 在 app.py 中输入以下代码:
from flask import Flask

def create_app():
    app = Flask("abc")

    @app.route('/')
    def hello_world():
        return 'Hello, World!'

或者让文件为空,像这样:

# This is an empty file
# There is no flask application here
  1. 在 CLI 中运行以下命令:
export FLASK_APP=app.py
flask run
  1. 注意屏幕上出现的错误

解决方案 1:

  1. 使函数返回应用
  2. 明确创建一个名为app的变量,并使其等于函数的返回值,如下所示:
from flask import Flask
def create_app():
    app = Flask(__name__)
    @app.route('/')
    def hello_world():
        return 'Hello, World!'
    return app
app = create_app()

解决方案2:在函数之外获取应用程序:

from flask import Flask

app = Flask("abc")

@app.route('/')
def hello_world():
    return 'Hello, World!'

答案 1 :(得分:2)

flask 错误的解决方案:找不到 Flask 应用程序。您没有提供“FLASK_APP”环境变量,并且在当前目录中未找到“wsgi.py”或“app.py”模块。 在 Windows 上尝试 set FLASKAPP=appname.py 如果您使用 PowerShell 并且遇到上述错误,请尝试这个??

$env:FLASK_APP = "filename"
$env:FLASK_ENV = "development"
Flask run

如果您在启动 Flask 应用程序时遇到问题,请尝试。

答案 2 :(得分:0)

使用FLASK_APP=theflaskapp.py而不是“烧瓶”,就像Marco建议的那样:

 env FLASK_APP=theflaskapp.py python -m flask run

这应该修复它,如果没有,请确保您正在执行命令以在与脚本相同的目录中运行脚本。您还应该通过运行“ python theflaskapp.py”(与烧瓶应用程序仍在同一目录中)来检查问题是否出在烧瓶中,并查看其是否完全起作用。

答案 3 :(得分:0)

另一个工作选项正在执行此命令,而不是执行flask运行:

flask run --host=0.0.0.0

我遇到了同样的问题,我在这里尝试了所有提到的答案,但最终无法解决问题。

答案 4 :(得分:0)

我遇到了同样的错误。问题是您必须在当前项目中设置环境变量FLASK_APP。

但是,我有解决此问题的最简单方法。可以使用flask run代替使用python app.py命令。

“ app.py” 是您的应用程序入口点。

答案 5 :(得分:0)

您需要指定要使用的文件。试试这个。

对于Windows:

set FLASK_APP=app.py
python -m flask run

对于Mac OS和Linux:

export FLASK_APP=app.py
python -m flask run

答案 6 :(得分:0)

我有类似的问题。在命令提示符下使用python app.py似乎可以正常工作。但是,它将无法通过VS Code Debug启动。

诀窍是添加:

server = app.server

在调用app.run_server()部分之前

答案 7 :(得分:-1)

尝试从此行代码中删除空格,这是在发生此错误时为我解决的问题:

app=Flask(__name__)

答案 8 :(得分:-2)

就我而言,这是一个非常简单的问题,activate.bat文件设置为Macintosh(CR),我更改为Windows(CR LF),并且对我有用。

说明:在Windows OS中,为了使指令生效,例如[set FLASK_ENV = development],需要一个强回车符,例如(CR LF),这是我可以验证的结果。您可以尝试在控制台cmd中运行SET指令,并检查FLASK设置是否得到反映。我知道这更多是环境配置问题,而不是应用程序本身问题。

相关问题