iPython-Notizbuch - Konfigurieren, um den Kernel beim Schließen der Registerkarte herunterzufahren

8

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?

    
Nikolay Gromov 28.09.2015, 13:40
quelle

3 Antworten

6

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:

%Vor%

Funktioniert perfekt für mich! (Ausprobiert in Chrome)

    
Nikolay Gromov 29.09.2015, 00:43
quelle
2

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 ...

    
Robert Jakubowski 14.01.2016 12:57
quelle
0

Ich denke IPython.notebook.session.delete() ist besser als IPython.notebook.kernel.kill() .

%Vor%

Grund

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).

Über unload

Auf GoogleChrome werden Entladeereignisse nicht auf sich bewegenden Seiten ausgelöst. Also, ich denke du solltest auch beforeunload event

haken

Aber das Anhaken um addEventListener('beforeunload', ...) hat nicht funktioniert. Also habe ich window.onbeforeunload = ausprobiert und es funktioniert gut.

    
hirokiky 07.12.2017 07:20
quelle

Tags und Links