我正在使用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?
答案 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中即可解决问题