Halten Jupyter notebook läuft nach dem schließen von browser-tab
Benutze ich Jupyter Notebook ausführen, um eine Reihe von Experimenten, die einige Zeit in Anspruch nehmen.
Bestimmte Zellen nehmen zu viel Zeit zur Ausführung, so ist es normal, dass ich möchte, um zu schließen Sie die Registerkarte browser und kommen Sie später darauf zurück. Aber wenn ich die kernel-interrupts läuft.
Ich denke, es gibt ein workaround dafür, aber ich kann es nicht finden
Du musst angemeldet sein, um einen Kommentar abzugeben.
Die einfachste Lösung, um dies zu sein scheint, die built-in Zelle magic
%%capture
:Speichern, schließen Sie die Registerkarte, kommen später zurück. Die Ausgabe ist jetzt gespeichert in der
output
variable:Dadurch werden alle interim
print
Ergebnisse sowie die Gleit-oder rich-output-Zelle.TL;DR:
Code hört nicht auf tab schließt, aber den Ausgang nicht mehr finden, die aktuelle browser-Sitzung und die Daten verliert, wie es soll angezeigt werden, wodurch es zu werfen alle eine neue Ausgabe zu erhalten, bis der code abgeschlossen ist, die ausgeführt wurde, wenn die Registerkarte geschlossen.
Lange Version:
Leider, dies ist nicht umgesetzt (Nov 24). Wenn es einen workaround, ich kann es nicht finden entweder. (Immer noch auf der Suche, aktualisiert mit news.) Es ist eine Problemumgehung, spart Ausgang dann es Nachdrucke, aber wird nicht funktionieren, wenn der code läuft immer noch in das notebook. Eine alternative wäre ein zweites notebook, dass man die Ausgabe in.
Brauche ich auch diese Funktionalität, und aus dem gleichen Grund. Der kernel nicht abschalten oder unterbrechen Sie auf die Registerkarte schließt. Und der code nicht mehr ausgeführt, wenn Sie schließen Sie die Registerkarte. Die Warnung gegeben, ist genau richtig, "Der kernel ist damit beschäftigt, Ausgänge verloren gehen kann."
Läuft
in einer box, dann schließen Sie die Registerkarte, öffnet Sie wieder, und dann läuft
aus einer anderen box dazu hängen, bis die 100 Sekunden beendet und der code abgeschlossen ist, dann wird es print-100.
Wenn eine Registerkarte geschlossen wird, wenn Sie zurückkehren, dem python-Prozess wird in den gleichen Zustand Sie es verlassen haben (bei dem letzten speichern abgeschlossen). Das war das beabsichtigte Verhalten, und was Sie hätte klarer in Ihren Unterlagen. Die Ausgabe aus dem code ausführen, der tatsächlich gesendet wird, um den browser beim erneuten öffnen, (verloren der Verweis, dass dies erklärt,) so hacks wie in dieser Kommentar funktionieren wird, wie es empfangen kann und nur werfen Sie in eine Zelle.
Ausgabe Art werden nur dann gespeichert, in einer zugänglichen Art und Weise über den Endpunkt der Verbindung. Sie haben schon eine Weile (vor Jupyter), obwohl ich nicht finden können, den aktuellen Fehler in der Jupyter repository (das man verweist, aber ist es nicht).
Nur Allgemeine workaround scheint zu sein, die Suche nach einem computer, können Sie lassen Sie immer auf und verlassen, dass auf der Seite, während es ausgeführt wird, dann die Fernbedienung oder stützen sich auf die autosave-um auf ihn zugreifen anderswo. Dies ist eine schlechte Art und Weise, es zu tun, aber leider, die Art, wie ich für jetzt.
Fragen:
Kämpfe ich mit diesem Problem auch seit einiger Zeit.
Mein workaround zu schreiben, das alle meine logs in eine Datei, so dass, wenn mein browser geschlossen wird (in der Tat, wenn eine Menge von Protokollen, kommen durch den browser hängt sich auch auf) ich kann sehen, dass der kernel-job-Prozess durch das öffnen der log-Datei (die log-Datei kann geöffnet werden mit Jupyter auch).
Installieren Sie zuerst
Und jetzt führen Sie Ihr notebook im hintergrund mit dem nachstehenden Befehl:
nun die Ausgabe-Datei gespeichert werden und Sie können auch sehen, die logs während der Ausführung mit: