5

Wenn ich ein gespeichertes IPython-Notizbuch öffne, muss ich alle Zellen mit Importen, Funktionsdefinitionen usw. auswerten, um mit der Arbeit an der Sitzung fortzufahren. Es ist bequem, hierfür auf Cell > Run All zu klicken. Aber was, wenn ich nicht alle Berechnungen neu bewerten möchte? Muss ich jedes Mal die Zellen auswählen, um sie von Hand auszuwerten?Hat das IPython Notebook "Initialisierungszellen"?

Für dieses Problem hat Mathematica das Konzept der "Initialisierungszellen". Sie können einige Zellen im Notebook als Initialisierungszelle markieren und dann nach dem Öffnen des Notebooks "Initialisierungszellen auswerten" ausführen.

Hat das IPython Notebook eine ähnliche Lösung?

+1

Letztlich in Reaktion auf diese Frage, ein IPython Notebook Erweiterung wurde geschrieben, um die Initialisierungszelle Feature zur Verfügung stellen: http://nbviewer.ipython.org/github/Carreau/posts/blob/master/04-initialization-cell.ipynb – rerx

+0

@rerx Können Sie Ihren Kommentar zu einem nswer? Ich habe diese Erweiterung fast verpasst, weil ich Ihren Kommentar zuerst nicht bemerkt habe. – cledoux

Antwort

3

Erstens, wenn Sie ein IPython-Notizbuch öffnen, bedeutet das nicht, dass der Status des Kernels verloren ist, , es sei denn, Sie haben den Server neu gestartet oder den Kernel explizit gestoppt.

Ansonsten gibt es keine markierte Zelle, aber es gibt eine "run bis hier" auf dev-Version.

Auch wenn Sie die dev-Version verwenden, verwenden Cell Toolbar/Metadaten und ich würde sagen, ~ 30 Zeile von Javascript sollte es machbar sein.

Ich schlage vor, Sie öffnen eine Erweiterungsanfrage auf Haupt-Problem Tracker. Dies könnte in der Regel als Erweiterung während eines Sprints und/oder eines Blog-Posts gemacht werden, um das interne Notebook zu erklären.

+6

Fazit: IPython Notebook hat keine Initialisierungszellen oder ähnliches. Hoffentlich wird dies in zukünftigen Versionen erscheinen. – clstaudt

+0

Ich habe die [Notebook-Erweiterungen] installiert (https://github.com/ipython-contrib/IPython-notebook-extensions.git) und "Initialisierungszellen" ist die einzige, die ich eine Woche später noch aktiviert habe. .. Gibt es eine Chance, dass es in einer nächsten Version von Jupyter zu einem Feature befördert wird? – gboffi

+0

Nein, diese Erweiterung ist wahrscheinlich nicht Teil des Kerns. – Matt

1

Wenn Sie das neueste und größte der Notebooks verwenden (meins ist> 4.1), ist die gewünschte Funktion über eine Erweiterung verfügbar.

Die Erweiterungen sowie eine Schnittstelle, die bequem verwendet werden können, aktivieren/deaktivieren jede einzelne Erweiterung, kann installiert werden, wie

$ git clone https://github.com/ipython-contrib/IPython-notebook-extensions.git 
$ cd IPython-notebook-extensions 
$ ./setup.py 

folgt Wenn Sie die Erweiterung installiert haben, starten Sie das Notebook Server

$ cd ; jupyter-notebook </dev/null> .jupiter.log 2>&1 & 

und gehen auf die Erweiterung Management Seite

$ xdg-open http://localhost:8888/nbextensions 

Aktivieren Sie im kürzlich geöffneten Browserfenster die Erweiterung "Initialization cells".

Wenn Sie jetzt ein Notizbuch von Ihnen öffnen, sehen Sie in der Symbolleiste ein neues Symbol, ähnlich einem Taschenrechner und in der View/Cell Toolbar einen neuen Eintrag, Initialisation Cell.

Aktivieren Sie diese Menü-Eintrag und klicken Sie auf die Zellen der Symbolleiste, welche Sie als Initialisierung Zelle markieren möchten (möglicherweise die Zellen entfernen Symbolleiste) und klicken Sie auf das Symbol zuvor beschrieben ...

Wenn Sie laden ein Notebook, die Initialisierungszellen werden automatisch ausgeführt, so dass, wenn Sie möchten, Sie sie an einem geeigneten Ort platzieren können, sagen Sie das Ende des Notebooks, wenn Sie wie ich sind ...