Wie kann ich Jupyter-Notebooks mit Nicht-Programmierern teilen? [geschlossen]


167

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, auf den über VPN zugegriffen werden kann und der durch ein Passwort geschützt ist.

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

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


5
Es sieht so aus, als könnten Sie die .ipynbDateien einfach auf GitHub stellen: blog.jupyter.org/2015/05/07/rendering-notebooks-on-github
jonrsharpe

4
Aber um es privat zu halten, müssten wir für Konten bezahlen.
Xav

Sie wollen also nicht, dass sie ganz öffentlich sind? Wenn nur für Einheimische, warum können sie dann nicht auf den Server zugreifen?
Jonrsharpe

2
Entschuldigung, wenn es nicht klar war. Ich möchte die Notizbücher auf dem Server bereitstellen (nur das Team kann sie sehen), aber wenn möglich möchte ich vermeiden, ihnen das Kennwort der Jupyter-Instanz oder eine andere Art des Zugriffs mit Bearbeitungsrechten zu geben.
Xav

4
Vielleicht können Sie einfach einen geheimen Kern erstellen ( gist.github.com ). "Geheimer Kern ist vor Suchmaschinen verborgen, aber für jeden sichtbar, dem Sie die URL geben." man hat sogar keinen Github-Account. schnell.
Tagoma

Antworten:


78

Die "beste" Möglichkeit, ein Jupyter-Notizbuch freizugeben, besteht darin, es einfach auf GitHub (und direkt anzuzeigen) oder einem anderen öffentlichen Link zu platzieren und den Jupyter-Notizbuch-Viewer zu verwenden . Wenn Datenschutz ein größeres Problem darstellt, gibt es Alternativen, die jedoch sicherlich komplexer sind. Es gibt keine integrierte Möglichkeit, dies allein in Jupyter zu tun, aber einige Optionen sind:

Hosten Sie Ihren eigenen nbviewer

GitHub und das Jupyter Notebook Veiwer verwenden beide dasselbe Tool zum Rendern .ipynb Dateien in statisches HTML Dieses Tool ist nbviewer .

Die Installationsanweisungen sind komplexer, als ich hier ausführen möchte. Wenn Ihr Unternehmen / Team jedoch über einen gemeinsam genutzten Server verfügt, für den kein Kennwortzugriff erforderlich ist, können Sie den nbviewer auf diesem Server hosten und ihn zum Laden von Ihrem Server mit Anmeldeinformationen anweisen . Dies erfordert wahrscheinlich eine erweiterte Konfiguration, als Sie in den Dokumenten finden werden.

Richten Sie ein Bereitstellungsskript ein

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


Sie können auch direkt auf nbviewer auf nbviewer.jupyter.org zugreifen und dort Ihre Datei hinzufügen
guhur

Der Jupyter Notebook Viewer rendert auch statische Notizbücher innerhalb der Kernpunkte, sodass Sie kein vollwertiges GitHub-Repo benötigen.
Wayne

Hinweis "Fügen Sie dort Ihre Datei hinzu" beinhaltet nicht das Hochladen mit einem Webdialog, mit dem Sie die Datei lokal aus dem Browser-Dateisystem auswählen können.
lucid_dreamer

29

Google hat kürzlich sein internes Verbundprojekt veröffentlicht ( Link hier ). Sie können ein Notizbuch auf die gleiche Weise wie ein Google Sheet oder Google Doc starten und dann einfach das Notizbuch freigeben oder Mitarbeiter hinzufügen.

Im Moment ist dies der einfachste Weg für mich.


1
Ich war überrascht, wie intuitiv und einfach Colaboratory zu bedienen war. Beachten Sie, dass Sie den Link nur als Ansicht freigeben können, Besucher jedoch den "Spielplatz" -Modus aktivieren können, um Codeblöcke auszuführen und Parameter anzupassen. sehr cool.
Timothy Lombard

Die Verknüpfungen sind alle in colab gebrochen.
Mathtick

Sie können hier beginnen: Google Colab Einführung
cglacet

24

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

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

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

BEARBEITEN : Mit Jupyter / IPythons Big Split möchten Sie dies wahrscheinlich auf !jupyter nbconvert <notebook name>.ipynb --to htmljetzt ändern .


12

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

Statisches Notizbuch

NBViewer ist ein großartiges Tool. Sie können es direkt in Jupyter verwenden . Github verfügt auch über ein Rendering, sodass Sie Ihre Datei direkt verknüpfen 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 ist es, Ihre Zellen über eine GPU zu berechnen.


1
MyBinder wird ein Abzeichen, dass Sie in Ihrem Repo für die Benutzer auf einfache Weise starten eine platzieren können aktiv ( Live ) Notebook finden Sie hier , für ein einfaches Beispiel. Sie können sogar festlegen, dass eine bestimmte ACTIVE- Notizbuchseite und nicht das Jupyter-Dashboard direkt gestartet werden soll, indem Sie einen Pfad zu einer Notizbuchdatei eingeben, bevor Sie den Pfeil neben der Startschaltfläche drücken, um Ihr Abzeichen zu erhalten.
Wayne

7

Eine großartige Möglichkeit, dies in 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, wenn sie in einem Texteditor geöffnet wird

Schritt 2: Strg + A und Strg + C diesen Inhalt. Dann Strg + V zu einem GitHub Gist, den du erstellen solltest.

Schritt 3: Erstellen Sie einen öffentlichen Inhalt und binden Sie den Kern so ein, wie Sie ihn immer in WordPress einbetten. Gehen Sie zum HTML-Editor und fügen Sie Folgendes hinzu:

[gist gist_url]

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


4

Eine weitere Möglichkeit, dieses Ziel zu erreichen, wäre die Verwendung von JupyterHub .

Mit JupyterHub können Sie einen Mehrbenutzer-Hub erstellen, der mehrere Instanzen des Einzelbenutzer-Jupyter-Notebook-Servers erzeugt, verwaltet und ersetzt. Aufgrund seiner Flexibilität und Anpassungsoptionen kann JupyterHub verwendet werden, um Notizbücher für eine Klasse von Studenten, eine Gruppe für Unternehmensdatenwissenschaft oder eine wissenschaftliche Forschungsgruppe bereitzustellen.

Geben Sie hier die Bildbeschreibung ein


2
Bisher ist jupyterhub nur nützlich, um vielen Benutzern den Zugriff auf jupyter zu ermöglichen. Das Teilen von Notizbüchern wird mit ShareHub bearbeitet, aber jupyterhub hilft nicht.
Craig

@Craig, hattest du die Chance es zu versuchen? Was ist ShareHub? Warum hast du gedacht, dass JupyterHub in diesem Fall nicht hilft? Können Sie, bitte, Ihren Kommentar mit Argumenten unterstützen, damit andere daraus lernen können?
Denis Rasulev

@Craig Ich stimme der Anfrage von "Denis Rasulev" zu. ShareHub gibt keine aussagekräftigen Ergebnisse zurück und der Rest Ihres Kommentars ist kryptisch.
lucid_dreamer

@Denis Wie vergleicht sich diese Lösung mit mybinder.org ? Irgendwelche Kommentare?
lucid_dreamer

@ user1712447, die Idee sieht gut aus, aber ich hatte kein Glück mit Beispielen, die ständig den Fehler "kein Leerzeichen" erhielten. Kann dir also nichts sagen. Außerdem sieht die Diskussion hier, imho, ein bisschen wie ein Off-Topic aus.
Denis Rasulev
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.