Auf der offiziellen Seite es wird gesagt :
Wenn ein Notebook geöffnet wird, wird automatisch seine "Computational Engine" (der so genannte Kernel) gestartet. Wenn Sie die Registerkarte des Notebook-Browsers schließen, wird der Kernel nicht heruntergefahren, stattdessen läuft der Kernel weiter, bis er explizit heruntergefahren wird. "
Ist es möglich, den iPython-Server so zu konfigurieren, dass der Kernel zusammen mit der zugehörigen Registerkarte gelöscht wird?
Nach einigen Recherchen und zahlreichen Versuchen ist die Lösung sehr einfach. Fügen Sie am Ende der Datei profile/static/custom/custom.js
den folgenden Code hinzu:
Funktioniert perfekt für mich! (Ausprobiert in Chrome)
Sie können eine Erweiterung in Jupyter schreiben
( mehr über jupyter Notebook-Erweiterungen ).
Ich kann keine Informationen über Notizbucherweiterungen in früheren Versionen von IPython finden. Notebook-Erweiterungen sind jedoch anpassbar und viel hübscher als custom.js
Sei vorsichtig mit unload
. Mein Chrom 43.0.2357.130 läuft nicht unload
auf Weiterleitung.
Ich wollte Kommentar für Nikolay Antwort schreiben, aber ich habe nicht genug Punkte ...
Ich denke IPython.notebook.session.delete()
ist besser als IPython.notebook.kernel.kill()
.
Weil kernel.kill()
nur den Kernel zerstört. Es wird dem Sessionmanager des Notebooks nicht sagen, es zu töten.
Nach dem Löschen erhöht der Sessionmanager KernelError
, wenn Sie dieselbe ipynb-Datei wieder öffnen, die Sie mit kernel.kill()
geschlossen haben (geschlossene Tabs oder Fenster).
Auf GoogleChrome werden Entladeereignisse nicht auf sich bewegenden Seiten ausgelöst.
Also, ich denke du solltest auch beforeunload
event
Aber das Anhaken um addEventListener('beforeunload', ...)
hat nicht funktioniert.
Also habe ich window.onbeforeunload =
ausprobiert und es funktioniert gut.
Tags und Links python ipython-notebook