Flacon app “Redémarrage avec stat”
J'ai construit quelques Flacon apps, mais sur mon dernier projet, j'ai remarqué quelque chose d'un peu étrange, le mode de développement. La deuxième ligne de l'habituel message dans le terminal qui se lit toujours:
* Running on http://127.0.0.1:5000/
* Restarting with reloader
a été remplacé par:
* Restarting with stat
Je ne pense pas que je ai fait quelque chose de différent, en fait, j'ai commencé par clonage d'un starter-kit de projet que j'ai utilisé de nombreuses fois, qui lui-même, n'affiche pas ce comportement. Je remarque aussi que ce projet consomme environ 15% de CPU de façon constante, alors que mes autres projets sont à peine un blip.
Des idées pourquoi ce qui se passe?
- Je peux confirmer que le changement de comportement semble être le résultat d'un changement dans la Werkzeug version. b) que l'intensification de l'utilisation des ressources semble être associé avec le reloader - paramètre debug = False modifie le comportement. et c) que l'installation de chien de garde diminue les besoins en ressources système. J'aimerais également faire remarquer que l'exécution d'une application en dev mode maintenant les résultats dans deux interpréteurs python exécute vs précédemment, lorsque l'un a couru. (avec soit un chien de garde ou sans) Aussi: avec le chien de garde est installé, le message sera:
Restarting with fsevents reloader
- Je vous remercie pour cette question. Dans mon cas, le rechargement n'a pas de travail du tout jusqu'à ce que j'ai installé chien de garde.
- J'ai juste remarqué aussi. Est-ce un bug qu'il n'imprime pas "en cours d'Exécution sur http://..." message lorsque debug=True ? Je suppose qu'ils ont la figure si vous êtes le débogage alors vous savez le localhost affaires...
- Par hasard, avez-vous été à l'aide de
.run()
dans votre code? J'ai eu ce problème, mais il a changé à l'aide de l'exportationFLASK_APP=app.py
via un terminal. N'est plus un problème pour moi. Référencé ici dans les docs flask.pocoo.org/docs/0.11/quickstart/#a-minimal-application - Je pense que la cli n'était pas encore disponible au moment de cette question, en fait.
Vous devez vous connecter pour publier un commentaire.
Vérifier votre version de Werkzeug. La Version 0.10 vient d'être publié et de nombreux changements sont allés dans le reloader. Un seul changement est qu'une interrogation par défaut reloader est utilisé; le vieux pyinotify reloader était apparemment inexacte. Si vous voulez plus efficace d'interrogation, d'installer le
surveillance
paquet. Vous pouvez voir le code lié à cette ici.Quand Werkzeug ne peut pas trouver de chien de garde, il utilise le
stat
reloader, sinon il utilise tout ce qui reloader chien de garde, qui peuvent varier selon la plateforme. Ce message est juste pour que vous sachiez qui est en cours d'utilisation.De surveillance peut ne pas être compatible avec gevent. Si vous utilisez gevent et d'avoir des problèmes avec le reloader lors de l'utilisation de chien de garde, vérifier cette question GitHub.
Utilisation
run(use_reloader=False)
pour désactiver le reloader.Il m'a donné des problèmes où il n'était pas en mesure de trouver mon serveur de fichier lorsqu'il a redémarré. Cela a fait le tour. Il a exécuté une seule fois et tout a fonctionné. Assez étrange.
Si vous exécutez avec
app.run(debug=True)
, il sera exécuté le reloader dans le cadre du mode debug. Si vous ne souhaitez pas utiliser le mode de débogage, passerdebug=False
ou ne passe pas du tout.