hot Nachladen / mit Python Swapping [Duplikat]
Frage
Diese Frage bereits eine Antwort hier:
- Wie entladen ich (Reload) ein Python-Modul? 18 Antworten
Ich möchte Code-Änderungen sofort wirksam werden während der Entwicklung. Wie kann ich Dateien detect geändert und neu laden sie in der laufenden Python (2.7) Anwendung?
Edit:
Nachdem die Seiten von ‚Ivo van der Wijk‘ verknüpft lesen, ich denke, es wäre am besten, die Web-Anwendung neu zu starten, wenn der Code ändert sich - wie Django tut. So ist die eigentliche Frage ist: Wie Dateiänderungen überwachen
Andere Tipps
Das macht keinen Sinn für die meisten Anwendungen, weil Sie Nebenwirkungen durch die Verwendung reload
bekommen. Plus die Zeit, die Sie auf dem Code ausgeben, der erkennt, Änderungen und Reloads alle Module auf verbracht haben könnten nur die Anwendung neu starten. Es ist sehr kompliziert, wenn Sie viele Module oder haben ein Projekt importieren, die viele Untermodule enthält.
In einigen Fällen ist es eine gute Idee, though. Der Django Web-Framework stellt einen Entwicklungsserver (manage.py runserver
), die automatisch geändert Module neu geladen. Werfen Sie einen Blick auf die django.utils.autoreload
- es alle Python-Dateien für Änderungen prüft die Änderungszeit der Dateien. Wie gesagt, dies nur eine gute Idee, für einige Anwendungen ist. Webanwendungen sind etwas staatenlos und kann daher mit wenig bis gar keine Nebenwirkungen neu geladen werden.