【问题标题】:flask.cli.NoAppException: Failed to find Flask application or factory in module "flaskr". Use "FLASK_APP=flaskr:name to specify oneflask.cli.NoAppException:无法在模块“flaskr”中找到 Flask 应用程序或工厂。使用“FLASK_APP=flaskr:name 指定一个
【发布时间】:2019-03-16 17:15:52
【问题描述】:

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

(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?

【问题讨论】:

  • 在Windows cmd中设置set FLASK_APP=flaskrset FLASK_ENV=development,然后运行flask run。这是告诉 Flask 在哪里可以找到您的应用程序并在开发模式下运行它所必需的。
  • 是的,我也遵循了这些步骤。

标签: python flask


【解决方案1】:

我发现了我的问题。我缺少 return app 作为我代码中的最后一条语句。很抱歉造成混乱和道歉。

【讨论】:

  • 您在create_app func 上的__init__.py 中忘记了它,对吧?对于同样情况下的其他人,知道你忘记它的地方可能会很有趣。
  • 我遇到了这个错误,在应用 init 文件中create_app 末尾缺少返回应用
  • 我定义了方法create而不是create_app
  • 在我的例子中,IDE 创建了一个空的 init.py,但我没有看到它,它阻止了烧瓶正常运行:|跨度>
【解决方案2】:

我收到了这个错误

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

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

后得到解决

【讨论】:

    【解决方案3】:

    我按照官方教程中的说明进行操作,但仍然出现同样的错误。

    我的问题在于我使用的 IDE (Pycharm)

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

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

    【讨论】:

      【解决方案4】:

      您的应用程序目录是否命名不正确?例如,如果您写了FLASK_APP=flaskr,但您的项目名称是其他名称,您将收到此错误。另外,如果项目被命名为flaskr,就像教程中一样,你的flaskr/flaskr/__init__.py 文件中有什么内容?

      【讨论】:

        【解决方案5】:

        根据您使用的操作系统,您需要在您的环境中导出 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```
        
        

        【讨论】:

        • 我完全按照教程中的说明做了
        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2019-10-09
        • 2021-11-26
        • 1970-01-01
        • 2017-05-17
        • 1970-01-01
        • 2020-09-26
        • 1970-01-01
        相关资源
        最近更新 更多