Es ist einfach, hoch integrierten Code in Python zu erstellen, so dass die Notwendigkeit, eine Anwendung zu beenden und neu zu starten, wenn der Code geändert wird, verständlich ist.Wie schreibe ich Python-Code, der selbst aktualisiert werden kann, ohne die Anwendung zu beenden?
Allerdings muss es sicherlich einige Strategien und Modelle geben, um Teile des Codes isolieren zu können, so dass er im laufenden Betrieb aktualisiert werden kann, ohne dass er beendet und neu gestartet werden muss.
Für die Anwendungen, die ich an vielen Funktionen arbeite, werden unabhängige Hintergrundaufgaben sein, mit denen die Hauptanwendung sprechen wird, Statusinformationen anzeigen und auch anweisen, Aufgaben basierend auf dem aktuellen Status auszuführen. In vielerlei Hinsicht können diese Hintergrundaufgaben als unabhängige Programme angesehen werden, nur weil sie einige der Codebasis mit der Hauptanwendung und anderen Tools, Tasks usw. gemeinsam nutzen.
Während es wahrscheinlich schwer ist, den ganzen Shebang updatefähig zu machen, bin ich sicher, dass es Wege geben muss, wo es möglich ist, Updates zu veröffentlichen und den laufenden Code zu bemerken und sich selbst zu aktualisieren.
Da ich auch gerne Multithreading und asyncio (in Python 3.5) ausnutzen würde, sowie explorieren, Dinge staatenlos zu machen, scheint es logisch möglich, hier einige interessante Dinge zu tun, die es zumindest möglich machen, einige zu vermeiden Erzwungene Neustarts beim Ausrollen von neuem Code.
Wäre sehr dankbar für Tipps und Hinweise zu Informationen, wie dies funktioniert.
Sie könnten interessiert sein an [diese Frage] (https://stackoverflow.com/questions/437589/how-do-i-unload-reload-a-python-module) – CoryKramer
Dank @CoryKramer, das ist genau die Art von Informationen, die ich suche. Brilliant, das könnte einfacher sein, als ich es mir vorgestellt habe :) – tsvenson
Ich glaube, Flasch und Tornado haben beide Funktionen, also könnt ihr euch auch ihren Code ansehen. – dano