Comment puis-je partager des blocs-notes Jupyter avec des non-programmeurs? [fermé]


167

J'essaie de comprendre ce que je peux / ne peux pas faire avec Jupyter.

J'ai un serveur Jupyter fonctionnant sur notre serveur interne, accessible via VPN et protégé par mot de passe.

Je suis le seul à créer des blocs-notes, mais j'aimerais rendre certains blocs-notes visibles aux autres membres de l'équipe en lecture seule. Idéalement, je pourrais simplement partager une URL avec eux qu'ils ajouteraient aux favoris lorsqu'ils voudraient voir le bloc-notes avec des données actualisées.

J'ai vu des options d'exportation mais je ne trouve aucune mention de "publication" ou de "publication" de blocs-notes en direct locaux. Est-ce impossible? Est-ce peut-être juste une mauvaise façon de penser à la façon dont Jupyter devrait être utilisé?


5
Il semble que vous puissiez simplement mettre les .ipynbfichiers sur GitHub: blog.jupyter.org/2015/05/07/rendering-notebooks-on-github
jonrsharpe

4
Mais pour garder cela privé, nous devrions payer des comptes.
xav

Vous ne voulez donc pas qu'ils soient entièrement publics? Ne serait-ce que pour les locaux, pourquoi ne peuvent-ils pas accéder au serveur?
jonrsharpe

2
Désolé si ce n'était pas clair. Je voudrais servir les notebooks sur le serveur (seule l'équipe peut le voir) mais si possible je voudrais éviter de leur donner le mot de passe de l'instance Jupyter ou tout autre moyen d'accès avec des droits d'édition.
xav

4
peut-être que vous pouvez simplement créer un résumé secret ( gist.github.com ) "Les éléments essentiels secrets sont cachés des moteurs de recherche mais visibles par toute personne à qui vous donnez l'URL." on n'a même pas de compte github. vite.
tagoma

Réponses:


78

La "meilleure" façon de partager un notebook Jupyter est simplement de le placer sur GitHub (et de l'afficher directement) ou sur un autre lien public et d'utiliser Jupyter Notebook Viewer . Lorsque la confidentialité est plus un problème, il existe des alternatives, mais c'est certainement plus complexe; il n'y a pas de moyen intégré de le faire dans Jupyter seul, mais quelques options sont:

Hébergez votre propre nbviewer

GitHub et Jupyter Notebook Veiwer utilisent tous deux le même outil pour rendre les .ipynbfichiers en HTML statique, cet outil est nbviewer .

Les instructions d'installation sont plus complexes que je ne suis prêt à entrer ici, mais si votre entreprise / équipe a un serveur partagé qui ne nécessite pas d'accès par mot de passe, vous pouvez héberger le nbviewer sur ce serveur et le diriger vers le chargement à partir de votre serveur authentifié . Cela nécessitera probablement une configuration plus avancée que celle que vous trouverez dans la documentation.

Configurer un script de déploiement

Si vous n'avez pas nécessairement besoin de mise à jour HTML en direct, vous pouvez configurer un script sur votre serveur authentifié qui utilisera simplement les options d'exportation intégrées de Jupyter pour créer les fichiers HTML statiques, puis les envoyer à un serveur plus accessible au public.


Vous pouvez également accéder à nbviewer directement sur nbviewer.jupyter.org et y ajouter votre fichier
guhur

Le Viewer Notebook Jupyter va rendre les ordinateurs portables statiques dans les GIST aussi, vous épargnant d' avoir besoin d' une prise en pension GitHub à part entière.
Wayne

Remarque «ajoutez-y votre fichier» n'inclut pas son téléchargement avec une boîte de dialogue Web vous permettant de sélectionner le fichier localement dans le système de fichiers du navigateur.
lucid_dreamer

29

Google a récemment rendu public son projet collaboratif interne ( lien ici ). Vous pouvez démarrer un bloc-notes de la même manière que pour démarrer une feuille Google ou un document Google, puis simplement partager le bloc-notes ou ajouter des collaborateurs.

Pour l'instant, c'est le moyen le plus simple pour moi.


1
J'ai été surpris de constater à quel point Colaboratory était intuitif et facile à utiliser. Notez que vous pouvez partager le lien sous forme de vue uniquement, mais les visiteurs peuvent activer le mode «terrain de jeu» pour exécuter des blocs de code et ajuster les paramètres. très cool.
Timothy Lombard

Les raccourcis sont tous cassés dans colab.
mathtick

Vous pouvez commencer ici: Introduction à Google colab
cglacet

24

La suggestion de Michael d'exécuter votre propre instance nbviewer est une bonne idée que j'ai utilisée dans le passé avec un serveur Enterprise Github.

Une autre alternative légère consiste à avoir une cellule à la fin de votre ordinateur portable qui fait un appel shell à nbconvert afin qu'il soit automatiquement actualisé après avoir exécuté le tout:

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

EDIT : Avec le Big Split de Jupyter / IPython, vous voudrez probablement changer cela !jupyter nbconvert <notebook name>.ipynb --to htmlmaintenant.


12

Cela dépend de ce que vous avez l'intention de faire avec votre notebook: voulez-vous que l'utilisateur puisse recalculer les résultats ou simplement jouer avec eux?

Cahier statique

NBViewer est un excellent outil. Vous pouvez l'utiliser directement dans Jupyter . Github a également un rendu, vous pouvez donc directement lier votre fichier (comme https://github.com/my-name/my-repo/blob/master/mynotebook.ipynb )

Cahier vivant

Si vous souhaitez que votre utilisateur puisse recalculer certaines parties, vous pouvez également utiliser MyBinder . Le démarrage de votre notebook prend un certain temps, mais le résultat en vaut la peine.

Comme le dit @Mapl, Google peut héberger votre notebook avec Colab . Une fonctionnalité intéressante est de calculer vos cellules sur un GPU.


1
MyBinder créera un badge que vous pourrez placer dans votre dépôt pour que les utilisateurs puissent facilement lancer un notebook actif (en direct ), voir ici , pour un exemple de base. Vous pouvez même spécifier de lancer directement dans une certaine page de notebook ACTIVE et non dans le tableau de bord Jupyter en entrant un chemin vers un fichier de notebook avant d'appuyer sur la flèche vers le bas à côté du bouton de lancement pour obtenir votre badge.
Wayne

7

Une excellente façon de faire cela sur WordPress consiste en les étapes suivantes:

Étape 1: Ouvrez votre bloc-notes Jupyter dans un éditeur de texte et copiez le contenu qui peut ressembler à ceci: Votre fichier .ipynb peut ressembler à ceci lorsqu'il est ouvert dans un éditeur de texte

Étape 2: Ctrl + A et Ctrl + C ce contenu. Ensuite, Ctrl + V ceci vers un GitHub Gist que vous devez créer.

Étape 3: Créez un contenu public et intégrez-le comme vous intégrez toujours des éléments essentiels sur WordPress, à savoir, accédez à l'éditeur HTML et ajoutez comme suit:

[gist gist_url]

J'ai effectivement mis en œuvre cela sur mon blog. Vous pouvez trouver le message ici


4

Une autre façon d'atteindre cet objectif serait d'utiliser JupyterHub .

Avec JupyterHub, vous pouvez créer un hub multi-utilisateur qui génère, gère et met en proxy plusieurs instances du serveur de bloc-notes Jupyter mono-utilisateur. En raison de sa flexibilité et de ses options de personnalisation, JupyterHub peut être utilisé pour servir des blocs-notes à une classe d'étudiants, à un groupe de science des données d'entreprise ou à un groupe de recherche scientifique.

entrez la description de l'image ici


2
Jusqu'à présent, jupyterhub n'est utile que pour donner à de nombreux utilisateurs l'accès à l'utilisation de jupyter. Le partage de notebooks est en cours de développement avec ShareHub, mais jupyterhub n'aide pas.
Craig

@Craig, avez-vous eu l'occasion de l'essayer? Qu'est-ce que ShareHub? Qu'est-ce qui vous a fait penser que JupyterHub n'aide pas dans ce cas? Pouvez-vous, pls, soutenir votre commentaire avec des arguments afin que d'autres puissent en tirer des leçons?
Denis Rasulev

@Craig Je seconde la demande de "Denis Rasulev". ShareHub ne renvoie aucun résultat significatif et le reste de votre commentaire est cryptique.
lucid_dreamer

@Denis comment cette solution se compare-t-elle à mybinder.org ? Des commentaires?
lucid_dreamer

@ user1712447, l'idée a l'air géniale mais je n'ai pas eu de chance avec des exemples qui obtiennent constamment l'erreur "pas d'espace". Donc je ne peux rien vous dire. A côté, en discuter ici, à mon humble avis, semble un peu hors sujet.
Denis Rasulev
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.