IPython Notebook laufen alle Zellen öffnen
Ich habe eine IPython noteboook und ich bin versucht, es in einer Weise, so dass alle Zellen sind lief automatisch, wenn das notebook geöffnet wird.
Dieses Verhalten unterscheidet sich von gespeicherten Ausgang für notebooks, die widgets enthalten. Widgets scheinen nur auf das Rendern für mich, wenn die Zellen, die Sie enthalten sind, ausgeführt. Betrachten Sie das folgende Beispiel:
from IPython.display import display
from IPython.html.widgets import IntSlider
w = IntSlider()
display(w)
Den Schieberegler nicht angezeigt wird, bis die Zelle ausgeführt wird.
Ist das etwas, was erreicht werden kann durch Notebook-Metadaten oder Konfigurationsdateien?
EDIT: https://try.jupyter.org/ zu tun scheint, so etwas wie dieses: Beachten Sie, dass die notebooks nicht ausgeführt werden, wenn Sie öffnen Sie die Seite und die Ausgabe anzeigen, wenn Sie geöffnet werden.
EDIT2: Hinzufügen Beispiel.
- Nicht sicher, ob ich Folgen dem argument: soweit ich das verstanden habe, ist der Python-code ausgeführt wird auf dem server mit dem notebook. Wie kann es führen etwas auf der client-Seite (abgesehen von Javascript, das könnte eingebettet werden in jede Website, die Sie besuchen)?
- Ja dann ist OK, wenn jemand legte
os.system("rm -rf *")
in der automatischen Ausführung notebook? Ist OK für mich, ich nutze Linux-desktop. Wenn es auf dem server, und nicht als root, es wird noch das löschen von Dateien auf dem server, die kann jemand brauchen oder führen Wartungs-Ausgabe. Ich nehme an, wenn Sie mit Wegwerf-VMs könnte es OK sein, und in der Tat die jupyter-basierte berkeley Funke war natürlich auf diese Weise (Wegwerf-VM, nicht selbststartenden Skript). - Hinweis: es gibt auch so etwas wie einen "vertrauenswürdigen" ipython notebook, geprägt von der Befehlszeile aus mit
ipython trust filename.ipynb
oder einem trust-Befehl in der website im Menü Datei. - Sehe nicht, wie das wäre anders, von jemandem manuell eingeben
os.system("rm -rf *")
und es läuft. Sowohl ein notebook als Host-server und einem notebook auf einem server gehostet, der ausgeführt wird, können automatisch die Ausführung von beliebigem code auf dem server. - Ich Stimme mit @MarkusSchanta, dies ist nicht ein gültiges argument, keine Antwort auf diese Frage ALSO: Entweder ein Benutzer ist nicht erlaubt Befehle eingeben (oder das notebook ist nicht gekennzeichnet als "vertrauenswürdig" noch), oder Sie ist erlaubt, beliebige Befehle auszuführen, und Sie kann dazu führen, "Schaden" entweder interaktiv oder in einem späteren Stadium, wenn der auto-läuft das notebook.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Ich habe gerade einen Weg gefunden, um dies ganz einfach tun. Wenn Sie installieren Sie die nbextensions-Paket (https://github.com/ipython-contrib/jupyter_contrib_nbextensions), eine der Erweiterungen heißt "Initialisierung Zellen" und können Sie markieren bestimmte Zellen automatisch ausgeführt wird, wenn das notebook geladen wird.
Wenn Sie das nächste mal (wieder)zu laden
alle Zellen ausgeführt wird und ein checkpoint wird gespeichert, mit deren Ausgänge aktualisiert.
Beachten Sie, dass wenn Sie deaktivieren Sie die Ausgabe des obigen Zelle, müssen Sie wiederholen Sie die Schritte 2 und 3.
TIPP
Können Sie erwägen, diese mehr geeignete Lösungen für das, was Sie wahrscheinlich versuchen zu erreichen:
Finden Sie eine Zusammenfassung der situation in dieser Artikel.
Kontroverse
Ähnliche Fragen wurde gefragt vor in andere Websites, aber in diese googlegroup thread, jemand gab eine Lösung, und moderator der Gruppe gelöscht hat(!), offensichtlich zu bewahren, das Leben auf der Erde 🙂
Also, seien Sie vorsichtig mit ihm!
Ich glaube nicht, dass dies möglich ist.
ipython führt code nicht aus, es sei denn, es ist 1) vorsätzliche und 2) vertraut. Ansonsten wirst du in Situationen, wo Sie laden, bis notebooks, die bösartigen code enthalten.
Können Sie überprüfen, details ipythons Sicherheit Modell hier: https://ipython.org/ipython-doc/dev/notebook/security.html . Insbesondere den Abschnitt, dass die Gespräche um code-Ausführung bei notebook-Eröffnung: "Die Sicherheit problem, das wir lösen müssen, ist, dass kein code ausgeführt werden soll, nur weil ein user geöffnet hat, ein Notizbuch, das Sie nicht schreiben"
Während Sie können explizite Vertrauensstellung auf einem notebook, ich bin mir nicht sicher, ob dies dann auch ermöglichen die automatische Ausführung von code sowie. Ich habe nicht gesehen, nichts von der Art, aber vielleicht habe ich einfach nicht auf der Suche schwer genug. Ich habe an anderer Stelle gesehen, dass die automatische Ausführung von code ist nicht etwas, das im Kern ipython Paket obwohl. Überprüfen Sie dieses Problem hier: https://github.com/ivanov/ipython-trainingwheels/issues/35
Darüber hinaus Vertrauen, ein weiterer Grund, warum ich vermute, dass dies nicht möglich ist, weil 1) die automatische code-Ausführung ersetzt alle vorhandenen Ausgabe, die derzeit gespeichert in notebook, was nicht ideal sein, und 2) einige notebooks können enthalten einen komplexen code, der zu rechenintensiv ist, die Sie würde nicht wollen, laufen jedes mal, wenn Sie öffnete das notebook.