web-dev-qa-db-ger.com

Wie kann ich Jupyter-Notebooks für Nicht-Programmierer freigeben?

Ich versuche meinen Kopf um das zu wickeln, was ich mit Jupyter machen kann/nicht kann.

Ich habe einen Jupyter-Server auf unserem internen Server, der über VPN und Passwort geschützt ist.

Ich bin der einzige, der tatsächlich Notizbücher erstellt, möchte jedoch einige Notizbücher für andere Teammitglieder schreibgeschützt sichtbar machen. Im Idealfall kann ich ihnen nur eine URL mitteilen, für die sie ein Lesezeichen setzen, wenn sie das Notizbuch mit aktualisierten Daten anzeigen möchten.

Ich habe Exportoptionen gesehen, kann aber keine Erwähnung von "Veröffentlichen" oder "Publizieren" lokaler Live-Notizbücher finden. Ist das unmöglich? Ist es vielleicht nur ein falscher Weg darüber nachzudenken, wie Jupyter angewendet werden sollte?

146
xav

Die "beste" Möglichkeit, ein Jupyter-Notizbuch freizugeben, besteht darin, es einfach auf GitHub (und direkt anzuzeigen) oder einen anderen öffentlichen Link zu platzieren und den Jupyter Notebook Viewer zu verwenden. Wenn es mehr um Datenschutz geht, gibt es Alternativen, die jedoch mit Sicherheit komplexer sind. In Jupyter gibt es keinen eingebauten Weg, dies alleine zu tun, aber einige Optionen sind:

Hosten Sie Ihren eigenen nbviewer

GitHub und Jupyter Notebook Veiwer verwenden dasselbe Tool zum Rendern von .ipynb Dateien in statischem HTML, dieses Tool ist nbviewer .

Die Installationsanweisungen sind komplexer, als ich hier gerne beschreiben würde. Wenn Ihr Unternehmen/Team jedoch einen freigegebenen Server hat, für den kein Kennwortzugriff erforderlich ist, können Sie den nbviewer auf diesem Server hosten und zum Laden von Ihrem Server mit Anmeldeinformationen anweisen . Dies erfordert wahrscheinlich eine weitergehende Konfiguration, als Sie in den Dokumenten finden werden.

Richten Sie ein Bereitstellungsskript ein

Wenn Sie HTML nicht unbedingt live aktualisieren müssen , können Sie auf Ihrem Server mit Berechtigungsnachweisen ein Skript einrichten, das zum Erstellen einfach die integrierten Exportoptionen von Jupyter verwendet die statischen HTML-Dateien und senden Sie diese dann an einen öffentlich zugänglichen Server.

67
Michael Leonard

Google hat kürzlich sein internes Kooperationsprojekt veröffentlicht ( Link hier ). Sie können ein Notizbuch wie ein Google Sheet oder Google Doc starten und es dann einfach freigeben oder Mitbearbeiter hinzufügen.

Das ist für mich vorerst der einfachste Weg.

25
Mapl

Michaels Vorschlag, eine eigene nbviewer-Instanz zu betreiben, ist ein guter Vorschlag, den ich in der Vergangenheit mit einem Enterprise Github-Server verwendet habe.

Eine andere einfache Alternative besteht darin, eine Zelle am Ende Ihres Notizbuchs zu haben, die einen Shell-Aufruf an nbconvert ausführt, damit diese nach dem Ausführen des Ganzen automatisch aktualisiert wird:

!ipython nbconvert <notebook name>.ipynb --to html

EDIT : Mit Jupyter/IPythons Big Split möchten Sie dies wahrscheinlich jetzt in !jupyter nbconvert <notebook name>.ipynb --to html ändern.

24
Randy

Wenn Sie kyso.io (Haftungsausschluss: Ich habe kyso gegründet) verwenden, können Sie Notizbücher ganz einfach online freigeben:

  • Hiermit können Sie Code anzeigen/verbergen, damit er von nicht-technischen Personen gelesen werden kann
  • Interaktive Visualisierungen funktionieren wie Bokeh und Plot.

Laden Sie Ihr Notizbuch hier hoch:

https://kyso.io/upload

Hier einige Beispiele:

15
Eoin Murray

Es hängt davon ab, was Sie mit Ihrem Notebook tun möchten: Möchten Sie, dass der Benutzer die Ergebnisse neu berechnen oder nur damit spielen kann?

Statisches Notizbuch

NBViewer ist ein großartiges Werkzeug. Sie können es direkt in Jupyter verwenden. Github verfügt auch über ein Rendering, sodass Sie Ihre Datei direkt verlinken können (z. B. https://github.com/my-name/my-repo/blob/master/mynotebook.ipynb )

Lebendiges Notizbuch

Wenn Sie möchten, dass Ihr Benutzer einige Teile neu berechnen kann, können Sie auch MyBinder verwenden. Das Starten Ihres Notebooks dauert einige Zeit, aber das Ergebnis ist es wert.

Wie von @Mapl gesagt, kann Google Ihr Notebook mit Colab hosten. Eine nette Funktion besteht darin, Ihre Zellen über eine GPU zu berechnen.

10
guhur
6
Kevin Zhu

Eine großartige Möglichkeit, dies auf WordPress zu tun, besteht aus den folgenden Schritten:

Schritt 1: Öffnen Sie Ihr Jupyter-Notizbuch in einem Texteditor und kopieren Sie den Inhalt, der möglicherweise so aussieht: Ihre .ipynb-Datei sieht möglicherweise so aus Dies beim Öffnen in einem Texteditor

Schritt 2: Strg + A und Strg + C dieser Inhalt. Dann Strg + V dies zu einem GitHub-Gist, den Sie erstellen sollten.

Schritt 3: Erstellen Sie ein öffentliches Gist und betten Sie das Gist so ein, wie Sie es immer in WordPress eingebettet haben. Gehen Sie zum HTML-Editor und fügen Sie Folgendes hinzu:

[Gist gist_url]

Ich habe dies tatsächlich in meinem Blog implementiert. Sie finden den Beitrag hier

6
Anirudh

Ein weiterer Weg, um dieses Ziel zu erreichen, wäre JupyterHub .

Mit JupyterHub können Sie einen Mehrbenutzer-Hub erstellen, der mehrere Instanzen des Einzelbenutzer-Jupyter-Notebook-Servers erzeugt, verwaltet und proxyserviert. Aufgrund seiner Flexibilität und Anpassungsmöglichkeiten kann JupyterHub verwendet werden, um Notebooks für eine Klasse von Studenten, eine Gruppe von Corporate Data Science-Mitarbeitern oder eine wissenschaftliche Forschungsgruppe bereitzustellen.

enter image description here

4
Denis Rasulev

am CoCalc können Sie Ihre ipynb-Datei hochladen und in Echtzeit mit anderen zusammenarbeiten. Es gibt auch eine Möglichkeit, die Dateien als statische HTML-Dateien zu veröffentlichen. Sie können jedoch auch Ihre Teammitglieder zu Ihrem Projekt einladen und an der Datei arbeiten, während sie beobachten, was los ist. Es gibt auch einen Side-Chat, um über den Inhalt zu sprechen.

4
Harald Schilly

www.zepl.com ist ein Hub für Data Science-Notebooks. (Haftungsausschluss. Ich bin Mitbegründer von ZEPL) Sie können Ihren Github oder S3 mit .ipynb-Dateien verbinden und erhalten

  • Zugriffskontrolle des Notebooks (Nur-Lese-URL veröffentlichen)
  • Von Github/S3 automatisch synchronisierte Notebooks (Aktualisierung)
  • Looknfeel melden (für Nicht-Techniker)
  • Team und Arbeitsbereich zum Organisieren der Freigabe (sicher im Team freigeben)
  • Kommentare zu den Zellen
  • Unterstützung für Jupyter-Notebooks und Zeppelin-Notebooks
3
moon