web-dev-qa-db-fra.com

Comment partager des blocs-notes Jupyter avec des non-programmeurs?

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 un réseau privé virtuel (VPN) et protégé par un mot de passe.

Je suis le seul à créer des cahiers, mais j'aimerais que certains cahiers soient visibles par les autres membres de l'équipe, en lecture seule. Idéalement, je pourrais simplement partager avec eux une URL avec laquelle ils auraient ajouté un signet 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 carnets de notes locaux. Est-ce impossible? Est-ce que c'est peut-être juste une mauvaise façon de penser à la façon dont Jupyter devrait être utilisé?

146
xav

Le "meilleur" moyen de partager un bloc-notes Jupyter consiste simplement à le placer sur GitHub (et le visualiser directement) ou sur un autre lien public et à utiliser le Jupyter Notebook Viewer . Lorsque la confidentialité est plus un problème, il existe des solutions de rechange mais elle est certainement plus complexe. Jupyter est le seul moyen de faire cela, mais quelques options sont les suivantes:

Hébergez votre propre nbviewer

GitHub et le Jupyter Notebook Veiwer utilisent tous les deux le même outil pour restituer les fichiers .ipynb en HTML statique. Cet outil est nbviewer .

Les instructions d'installation sont plus complexes que ce que je suis disposé à expliquer ici, mais si votre société/votre équipe dispose d'un serveur partagé ne nécessitant pas d'accès par mot de passe, vous pouvez héberger nbviewer sur ce serveur et lui demander de le charger depuis votre serveur accrédité. . Cela nécessitera probablement une configuration plus avancée que celle que vous allez trouver dans la documentation.

Configurer un script de déploiement

Si vous n'avez pas nécessairement besoin de live mettre à jour le code HTML, vous pouvez configurer un script sur votre serveur accrédité, 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.

67
Michael Leonard

Google a récemment rendu public son projet interne Collaboratory ( lien ici ). Vous pouvez démarrer un bloc-notes de la même manière que vous démarrez Google Sheet ou Google Doc, puis partagez-le simplement ou ajoutez des collaborateurs.

Pour le moment, c’est le moyen le plus simple pour moi.

25
Mapl

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

Une autre solution légère consiste à avoir une cellule à la fin de votre ordinateur portable qui effectue un appel Shell à nbconvert afin qu’elle soit automatiquement actualisée après avoir exécuté le tout:

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

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

24
Randy

Si vous utilisez kyso.io (disclaimer: j'ai fondé kyso), vous pouvez partager des cahiers en ligne facilement:

  • Vous pourrez afficher/masquer le code afin que les non-techniciens puissent le lire
  • Les visualisations interactives fonctionnent parfaitement, comme le bokeh et l'intrigue.

Téléchargez votre cahier ici:

https://kyso.io/upload

Voici quelques exemples:

15
Eoin Murray

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

Cahier statique

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

Cahier Alive

Si vous souhaitez que votre utilisateur puisse recalculer certaines parties, vous pouvez également utiliser MyBinder . Il faut un certain temps pour démarrer votre ordinateur portable, mais le résultat en vaut la peine.

Comme l'a dit @ Mapl, Google peut héberger votre ordinateur portable avec Colab . Une fonctionnalité intéressante consiste à calculer vos cellules sur un GPU.

10
guhur
6
Kevin Zhu

Une excellente façon de procéder sur WordPress consiste à suivre les étapes suivantes:

Étape 1: Ouvrez votre carnet Jupyter dans un éditeur de texte et copiez le contenu qui pourrait 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. Puis Ctrl + V ceci à un Gist Git que vous devez créer.

Étape 3: Créez un Gist public et intégrez le Gist comme vous intégrez toujours les gènes sur WordPress, à savoir, accédez à l'éditeur HTML et ajoutez le même comme suit:

[Gist gist_url]

J'ai effectivement implémenté cela sur mon blog. Vous pouvez trouver le message ici

6
Anirudh

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

Avec JupyterHub, vous pouvez créer un concentrateur multi-utilisateurs qui génère, gère et met en proxy plusieurs instances du serveur de cahiers Jupyter mono-utilisateur. En raison de sa flexibilité et de ses options de personnalisation, JupyterHub peut être utilisé pour servir de cahiers à une classe d’étudiants, à un groupe informatique ou à un groupe de recherche scientifique.

enter image description here

4
Denis Rasulev

sur CoCalc vous pouvez télécharger votre fichier ipynb et collaborer avec d’autres en temps réel. Il existe également un moyen de publier les fichiers sous forme de fichiers HTML statiques, mais vous pouvez également inviter les membres de votre équipe à participer à votre projet et travailler sur le fichier tout en observant ce qui se passe. Il y a aussi une discussion en côté pour parler du contenu.

4
Harald Schilly

www.zepl.com est un hub de data science notebook. (disclaimer. Je suis co-fondateur de ZEPL) Vous pouvez connecter votre Github ou S3 avec des fichiers .ipynb et obtenir

  • Contrôle d'accès du carnet (publication d'URL en lecture seule)
  • Ordinateurs portables automatiquement synchronisés à partir de Github/S3 (rafraîchissement)
  • Rapport looknfeel (pour les personnes non techniques)
  • Équipe et espace de travail pour organiser le partage (partager en toute sécurité dans l'équipe)
  • Commentaires sur les cellules
  • Support des formats de bloc-notes Jupyter et Zeppelin
3
moon