Come posso condividere i notebook Jupyter con non programmatori? [chiuso]


167

Sto cercando di avvolgere la mia testa su ciò che posso / non posso fare con Jupyter.

Ho un server Jupyter in esecuzione sul nostro server interno, accessibile tramite VPN e protetto da password.

In realtà sono il solo a creare notebook, ma vorrei rendere alcuni notebook visibili agli altri membri del team in sola lettura. Idealmente, potrei semplicemente condividere con loro un URL per il quale aggiungerebbero un segnalibro quando vogliono vedere il notebook con dati aggiornati.

Ho visto le opzioni di esportazione ma non riesco a trovare alcuna menzione di "pubblicazione" o "pubblicazione" di taccuini locali dal vivo. È impossibile? È forse solo un modo sbagliato di pensare a come usare Jupyter?


5
Sembra che tu possa semplicemente mettere i .ipynbfile su GitHub: blog.jupyter.org/2015/05/07/rendering-notebooks-on-github
jonrsharpe il

4
Ma per mantenerlo privato, dovremmo pagare per i conti.
xav,

Quindi non vuoi che siano completamente pubblici? Se non fosse solo per i locali, perché non possono accedere al server?
jonrsharpe,

2
Scusa se non era chiaro. Vorrei servire i notebook sul server (solo il team può vederlo) ma, se possibile, vorrei evitare di fornire loro la password dell'istanza di Jupyter o qualsiasi altro modo di accesso con diritti di modifica.
xav,

4
forse puoi semplicemente creare un segreto ( gist.github.com ) "I segreti sono nascosti dai motori di ricerca ma sono visibili a chiunque ti dia l'URL." uno addirittura non ha un account github. veloce.
tagoma,

Risposte:


78

Il modo "migliore" per condividere un notebook Jupyter è semplicemente posizionarlo su GitHub (e visualizzarlo direttamente) o su qualche altro link pubblico e utilizzare Jupyter Notebook Viewer . Quando la privacy è più un problema, allora ci sono alternative ma è sicuramente più complessa; non esiste un modo integrato per farlo da solo in Jupyter, ma un paio di opzioni sono:

Ospita il tuo nbviewer

GitHub e Jupyter Notebook Veiwer utilizzano entrambi lo stesso strumento per eseguire il rendering dei .ipynbfile in HTML statico, questo strumento è nbviewer .

Le istruzioni di installazione sono più complesse di quelle che sono disposto ad entrare qui, ma se la tua azienda / squadra ha un server condiviso che non richiede l'accesso con password, potresti ospitare nbviewer su quel server e indirizzarlo al caricamento dal tuo server con credenziali . Ciò richiederà probabilmente una configurazione più avanzata di quella che troverai nei documenti.

Configurare uno script di distribuzione

Se non hai necessariamente bisogno di un aggiornamento HTML in tempo reale, puoi impostare uno script sul tuo server con credenziali che utilizzerà semplicemente le opzioni di esportazione integrate di Jupyter per creare i file HTML statici e quindi inviarli a un server più accessibile pubblicamente.


Puoi anche accedere a nbviewer direttamente su nbviewer.jupyter.org e aggiungere lì il tuo file
guhur,

Il Notebook Jupyter Viewer renderà notebook statiche all'interno di GIST troppo, risparmiando dal bisogno di un pronti contro termine a pieno titolo GitHub.
Wayne,

Nota "aggiungi il tuo file" non include il caricamento con una finestra di dialogo web che ti consente di selezionare il file localmente dal file system del browser.
lucid_dreamer

29

Google ha recentemente reso pubblico il suo progetto di collaborazione interno ( link qui ). Puoi avviare un blocco appunti come se fosse un foglio di Google o un documento Google, quindi condividere semplicemente il blocco note o aggiungere collaboratori.

Per ora, questo è il modo più semplice per me.


1
Sono stato sorpreso di scoprire quanto intuitivo e facile il Colaboratorio fosse da usare. Si noti che è possibile condividere il collegamento solo come vista, ma i visitatori possono abilitare la modalità "parco giochi" per eseguire blocchi di codice e regolare i parametri. molto bello.
Timothy Lombard,

Le scorciatoie sono tutte rotte in colab.
mathtick,


24

Il suggerimento di Michael di eseguire la propria istanza di nbviewer è buono che ho usato in passato con un server Enterprise Github.

Un'altra alternativa leggera è quella di avere una cella alla fine del notebook che esegue una chiamata shell a nbconvert in modo che venga automaticamente aggiornato dopo aver eseguito il tutto:

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

EDIT : Con Big Split di Jupyter / IPython, probabilmente vorrai cambiarlo !jupyter nbconvert <notebook name>.ipynb --to htmlora.


12

Dipende da cosa intendi fare con il tuo Notebook: vuoi che l'utente possa ricalcolare i risultati o semplicemente giocare con loro?

Quaderno statico

NBViewer è un ottimo strumento. Puoi usarlo direttamente all'interno di Jupyter . Github ha anche un rendering, quindi puoi collegare direttamente il tuo file (come https://github.com/my-name/my-repo/blob/master/mynotebook.ipynb )

Notebook vivo

Se vuoi che il tuo utente sia in grado di ricalcolare alcune parti, puoi anche usare MyBinder . L'avvio del notebook richiede del tempo, ma ne vale la pena.

Come detto da @Mapl, Google può ospitare il tuo notebook con Colab . Una bella caratteristica è calcolare le tue celle su una GPU.


1
MyBinder creerà un badge che puoi posizionare nel tuo repository per consentire agli utenti di avviare facilmente un notebook attivo ( live ), vedi qui , per un esempio di base. Puoi anche specificare di avviare direttamente una determinata pagina di quaderno ATTIVO e non la dashboard di Jupyter immettendo un percorso per un file di quaderno prima di premere la freccia verso il basso accanto al pulsante di avvio per ottenere il badge.
Wayne,

7

Un ottimo modo per farlo su WordPress consiste nei seguenti passaggi:

Passaggio 1: apri il tuo taccuino Jupyter in un editor di testo e copia il contenuto che potrebbe apparire così: il tuo file .ipynb potrebbe apparire così quando viene aperto in un editor di testo

Passaggio 2: Ctrl + A e Ctrl + C questo contenuto. Quindi Ctrl + V questo per un GitHub Gist che dovresti creare.

Passaggio 3: crea un'essenza pubblica e incorpora l'essenza come hai sempre incorporato l'essiccazione su WordPress, vale a dire, vai all'editor HTML e aggiungi in questo modo:

[gist gist_url]

L'ho effettivamente implementato sul mio blog. Puoi trovare il post qui


4

Un altro modo per raggiungere questo obiettivo sarebbe usare JupyterHub .

Con JupyterHub è possibile creare un hub multiutente che genera, gestisce e inoltra più istanze del server notebook Jupyter per utente singolo. Grazie alla sua flessibilità e opzioni di personalizzazione, JupyterHub può essere utilizzato per servire i notebook a una classe di studenti, un gruppo di scienza dei dati aziendali o un gruppo di ricerca scientifica.

inserisci qui la descrizione dell'immagine


2
Finora jupyterhub è utile solo per dare a molti utenti l'accesso all'uso di jupyter. La condivisione dei notebook è in fase di elaborazione con ShareHub, ma jupyterhub non aiuta.
Craig,

@Craig, hai avuto la possibilità di provarlo? Che cos'è ShareHub? Cosa ti ha fatto pensare che JupyterHub non aiuti in questo caso? Potete, per favore, supportare il vostro commento con qualsiasi argomento in modo che altri possano imparare da esso?
Denis Rasulev,

@Craig I seconda richiesta di "Denis Rasulev". ShareHub non restituisce risultati significativi e il resto del tuo commento è criptico.
lucid_dreamer,

@Denis come si confronta questa soluzione con mybinder.org ? Qualche commento?
lucid_dreamer,

@ user1712447, l'idea sembra fantastica ma non ho avuto fortuna con esempi che ottengono l'errore "no space" per tutto il tempo. Quindi non posso dirti niente. Inoltre, discuterne qui, imho, sembra un po 'fuori tema.
Denis Rasulev,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.