2012-04-01 11 views
10

Ich fange gerade an, Python + Tornado für meine Webserver zu lernen. Jedes Mal, wenn ich etwas Code in meinen Python-Skripten oder Templates ändere, muss ich das in meinem Terminal (STRG + C) stoppen und neu starten (python server.py) und ich möchte einen effektiveren Weg, dies zu tun, nachdem ich den Code geändert habe Bei einigen Dateien startet der Server automatisch neu.Python + Tornado Neustart nach dem Bearbeiten von Dateien

Zuvor arbeitete ich mit NodeJS und mit Supervisor, um dies zu tun.

Auch gibt es eine Möglichkeit, meine Tab in Google Chrome neu zu laden, so kann ich die Änderungen sehen, ohne nachzuladen (F5)

Derzeit bin ich Ubuntu 11.10 und Sublime Text 2 und mit STRG + B auf sublimen Text mit , aber wenn der Server bereits ausgeführt wird, wird ein Fehler generiert, da die Adresse und der Port verwendet werden. Es gibt eine Lösung dafür, ohne den Port zu ändern.

Danke.

Antwort

10

Wenn Sie nach einem automatischen Neuladen von .py-Dateien während der Entwicklung suchen. In Ihrem tornado.web.Application() setzen Sie debug=True nach Ihren Handlern.

Ich denke nicht, dass Sie dies in der Produktionsumgebung tun sollten, da solche Implementierungen in der Regel einen Hintergrundthread verwenden, um Dateien aktiv nach Änderungen zu durchsuchen, was Ihre Anwendung verlangsamen kann.

+0

Funktioniert prima, danke! – danielfrg

+1

Eigentlich glaube ich, dass Tornado keinen separaten Thread dafür verwendet, sondern stattdessen Handler auf seinem IOLoop registriert. Trotzdem entsteht ein Overhead. Außerdem sollten Debug-Nachrichten in der Produktion sowieso nicht verwendet werden. –

+0

Es ist jetzt möglich, "autoreload = True" einzugeben. Und es gibt eine Dokumentationsseite hier: http://www.tornadoweb.org/en/stable/autoreload.html – Ross