Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/299.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 烧瓶应用程序“;使用stat重新启动";_Python_Flask - Fatal编程技术网

Python 烧瓶应用程序“;使用stat重新启动";

Python 烧瓶应用程序“;使用stat重新启动";,python,flask,Python,Flask,我已经构建了一些Flask应用程序,但在我的最新项目中,我注意到在开发模式中有点奇怪。终端中通常信息的第二行,始终显示: * Running on http://127.0.0.1:5000/ * Restarting with reloader 已替换为: * Restarting with stat 我不认为我做了什么不同的事情,事实上,我是从克隆一个我使用过很多次的初学者工具包项目开始的,它本身并没有显示这种行为。我还注意到,这个项目稳定地消耗了大约15%的CPU,而我的另一个项

我已经构建了一些Flask应用程序,但在我的最新项目中,我注意到在开发模式中有点奇怪。终端中通常信息的第二行,始终显示:

 * Running on http://127.0.0.1:5000/
 * Restarting with reloader
已替换为:

 * Restarting with stat
我不认为我做了什么不同的事情,事实上,我是从克隆一个我使用过很多次的初学者工具包项目开始的,它本身并没有显示这种行为。我还注意到,这个项目稳定地消耗了大约15%的CPU,而我的另一个项目几乎是昙花一现


知道为什么会发生这种情况吗?

检查您的Werkzeug版本。版本0.10刚刚发布,在重新加载程序中进行了大量更改。一个变化是使用了默认的轮询重新加载程序;旧的pyinotify重新装载器显然不准确。如果您想要更高效的轮询,请安装该软件包。您可以看到与此相关的代码

当Werkzeug找不到watchdog时,它使用
stat
reloader,否则它使用watchdog使用的任何reloader,这可能因平台而异。此消息只是为了让您知道正在使用哪一个


监视程序可能与gevent不兼容。如果您正在使用gevent,并且在使用Watchdog时重新加载程序出现问题,请选中。

使用
run(使用\u reloader=False)
禁用重新加载程序


它给了我一些问题,当它重新启动时无法找到我的服务器文件。这就成功了。它只执行了一次,一切正常。很奇怪

如果使用
app.run(debug=True)
运行,它将作为调试模式的一部分运行重新加载程序。如果您不想使用调试模式,请传递
debug=False
或根本不传递它。

我的文件名是uuu main\uuuuu.py,我将其导出为:export FLASK\u APP=\uu main\uuuuuuu.py
将名称更改为app.py并重新导出后,它成功了。

我可以确认a)行为更改似乎是Werkzeug版本更改的结果。b) 提高的资源使用率似乎与重新加载程序关联-设置debug=False会改变行为。c)安装看门狗降低了系统资源需求。我还要指出,在开发模式下运行应用程序现在会导致两个python解释器运行,而以前只有一个运行。(带或不带watchdog)另外:安装watchdog后,消息将是:
使用fsevents reloader重新启动
感谢您的提问。在我的例子中,在我安装了watchdog之前,重新加载根本不起作用。我也注意到了这一点。这是一个错误,它没有打印“正在运行”吗http://...“debug=True时的消息?我猜他们认为,如果您正在调试,那么您就知道本地主机业务了……您是否在代码中使用了
.run()
?我有这个问题,但改为通过终端使用导出
FLASK\u APP=APP.py
。对我来说已经不是问题了。在这里引用的文档中,我认为cli实际上在这个问题出现时甚至不可用。在OP中,我希望重新加载程序能够运行—我只是不希望它占用我的cpu。