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

时间:2019-03-16 17:15:52

标签: python flask

我正在使用flask创建一个python Web应用程序,并遵循http://flask.pocoo.org/docs/1.0/tutorial/factory/的教程。我正在从父目录运行烧瓶,但出现以下错误。

(venv) E:\python-code\python-web>flask run
 * Serving Flask app "flaskr" (lazy loading)
 * Environment: development
 * Debug mode: on
 * Restarting with stat
 * Debugger is active!
 * Debugger PIN: 294-690-396
 * Running on http://127.0.0.1:5000/ (Press CTRL+C to quit)
127.0.0.1 - - [16/Mar/2019 13:10:43] "GET /hello HTTP/1.1" 500 -
Traceback (most recent call last):
  File "e:\python-code\python-web\venv\lib\site-packages\flask\_compat.py", line 35, in reraise
    raise value
  File "e:\python-code\python-web\venv\lib\site-packages\flask\cli.py", line 95, in find_best_app
    module=module.__name__
flask.cli.NoAppException: Failed to find Flask application or factory in module "flaskr". Use "FLASK_APP=flaskr:name to specify one.
127.0.0.1 - - [16/Mar/2019 13:10:43] "GET /hello?__debugger__=yes&cmd=resource&f=style.css HTTP/1.1" 200 -
127.0.0.1 - - [16/Mar/2019 13:10:43] "GET /hello?__debugger__=yes&cmd=resource&f=jquery.js HTTP/1.1" 200 -
127.0.0.1 - - [16/Mar/2019 13:10:43] "GET /hello?__debugger__=yes&cmd=resource&f=debugger.js HTTP/1.1" 200 -
127.0.0.1 - - [16/Mar/2019 13:10:43] "GET /hello?__debugger__=yes&cmd=resource&f=ubuntu.ttf HTTP/1.1" 200 -
127.0.0.1 - - [16/Mar/2019 13:10:44] "GET /hello?__debugger__=yes&cmd=resource&f=console.png HTTP/1.1" 200 -
127.0.0.1 - - [16/Mar/2019 13:10:44] "GET /hello?__debugger__=yes&cmd=resource&f=console.png HTTP/1.1" 200 -

请帮助。

我已经尝试过Running Flask app from cli gives "no module named flaskr"flask.cli.NoAppException: Failed to find application in module?

5 个答案:

答案 0 :(得分:2)

我遇到了那个错误

<块引用>

flask.cli.NoAppException flask.cli.NoAppException:找不到 Flask 应用程序或模块“flaskr”中的工厂。采用 "FLASK_APP=flaskr:name 指定一个。

我尝试了所有答案,在将函数名称从 create_function 更改为 create_app

后,问题得到解决

答案 1 :(得分:1)

我发现了我的问题。我缺少return app作为代码中的最后一条语句。抱歉引起您的困惑和歉意。

答案 2 :(得分:0)

根据您使用的操作系统,需要在您的环境中导出flaskr

对于Linux和Mac:

export FLASK_APP=flaskr
export FLASK_ENV=development
flask run

对于Windows cmd,请使用set而不是export:

set FLASK_APP=flaskr
set FLASK_ENV=development
flask run

对于Windows PowerShell,请使用$ env:而不是export:

$env:FLASK_APP = "flaskr"
$env:FLASK_ENV = "development"
flask run```

答案 3 :(得分:0)

您的应用程序目录是否命名不正确?例如,如果您编写了FLASK_APP=flaskr,但您的项目名称是其他名称,则会出现此错误。另外,如果项目像本教程中那样命名为flaskr/flaskr/__init__.py,则flaskr文件中的内容是什么?

答案 4 :(得分:0)

我按照官方教程中的指示进行操作,但仍然遇到相同的错误。

我的问题是使用的(Pycharm)IDE

即使我在flaskr目录中有一个 init .py文件,它仍然不被视为软件包。

因此,我删除了flaskr目录并创建了一个“新包”。然后只需将代码复制到 init .py中即可解决问题