Jupyter

Jupyter est une application web utilisée pour programmer dans plus de 40 langages de programmation, dont Python, Julia, Ruby, R, ou encore Scala[2]. C'est un projet communautaire dont l'objectif est de développer des logiciels libres, des formats ouverts et des services pour l'informatique interactive. Jupyter est une évolution du projet IPython. Jupyter permet de réaliser des calepins ou notebooks, c'est-à-dire des programmes contenant à la fois du texte en markdown et du code. Ces calepins sont utilisés en science des données pour explorer et analyser des données.

Jupyter

Informations
Première version [1]
Dépôt github.com/jupyter
Type Organisme sans but lucratif
Projet
Documentation jupyter.org/documentation
Site web https://jupyter.org/

Historique

En 2014, Fernando Pérez annonce un projet dérivé d'IPython nommé Projet Jupyter[3]. IPython continue d'exister comme interpréteur de commande Python et noyau pour Jupyter. Tandis que le notebook et d'autres composants d'IPython[4] qui ne sont pas liées à un langage sont passés sous le nom de Jupyter. Le nom du projet Jupyter fait référence :

  • aux trois principaux langages de programmation pris en charge par Jupyter, à savoir Julia, Python et R ;
  • aux carnets de notes de Galilée sur la découverte des lunes de Jupiter ;

Le projet Jupyter développe et maintient les logiciels interactifs Jupyter Notebook, JupyterHub et JupyterLab.

Philosophie

La philosophie de fonctionnement du projet Jupyter est de soutenir la science interactive des données et le calcul scientifique dans tous les langages de programmation par le biais du développement de logiciels libres. Selon le site web du projet Jupyter, Jupyter sera toujours un logiciel 100% open-source, libre d'utilisation pour tous et publié sous les termes de la licence BSD modifiée.

Logiciels

Jupyter Notebook

Jupyter Notebook (anciennement IPython Notebooks) est un environnement de programmation interactif basé sur le Web permettant de créer des documents Jupyter Notebook. Le terme "notebook" peut faire référence à de nombreuses entités différentes, adaptées au contexte, telles que l'application web Jupyter, le serveur web Jupyter Python ou le format de document Jupyter.

Un document Jupyter Notebook est un document JSON. Il suit un schéma contenant une liste ordonnée de cellules d'entrée/sortie. Celles-ci peuvent contenir du code, du texte (à l'aide de Markdown), des formules mathématiques, des graphiques et des médias interactifs. Ce document se termine généralement par l'extension ".ipynb".

À l'aide de la commande « Télécharger sous » de l'interface web, du module nbconvert[5] ou l'interface de ligne de commande "jupyter nbconvert" dans un interpréteur de commande, un document Jupyter Notebook peut être converti en un certain nombre de formats ouverts de sortie  : HTML, diapositives de présentation, LaTeX, PDF, ReStructuredText, Markdown, Python.

Afin de simplifier la visualisation des documents Jupyter Notebook sur le web, la bibliothèque nbconvert[6] est fournie en tant que service par l'application Jupyter NbViewer[7]. Cette application web peut prendre une URL pointant vers n'importe quel document disponible publiquement, le convertir à la volée en HTML et l'afficher à l'utilisateur.

Jupyter Notebook s'appuie également sur un certain nombre de bibliothèques open-source :

Jupyter Notebook peut se connecter à de nombreux noyaux, des environnements permettant de programmer et d'exécuter différents langages, dans la terminologie de Jupyter.

JupyterHub

JupyterHub est un serveur multi-utilisateurs dédié : il est conçu pour prendre en charge de nombreux utilisateurs en gérant de nombreux serveurs Jupyter Notebook.

JupyterLab

JupyterLab est une interface utilisateur : Il offre les éléments constitutifs du Jupyter Notebook classique (carnet de notes, terminal, éditeur de texte, navigateur de fichiers, sorties riches, etc.).

Jupyter Book

Jupyter Book est un projet open source permettant de construire des livres et des documents à partir de matériel informatique. Il permet à l'utilisateur de construire le contenu dans un mélange de Markdown avec une version étendue de Markdown appelée MyST[9].

Noyaux

Jupyter s'appuie sur un noyau IPython pour Python 2, un noyau IPython pour Python 3, IRkernel, un noyau pour le langage R, ainsi que le langage Scala basé sur R[10] et IJulia, un noyau pour le langage Julia[11], maintenus par les principaux développeurs du projet. Un grand nombre noyaux sont développés et maintenus par la communauté des développeurs. Cela inclus IPyLua, noyau pour le langage Lua (il existe plusieurs noyaux Lua), IRuby, noyau pour le langage Ruby, Calysto Processing pour Processing, etc.[2].

Versions

Jupyter peut être installé sur un ordinateur personnel. JupyterHub peut être installé sur un serveur et permet de définir des comptes utilisateurs.

Logiciels dérivés

La société Yhat a développé le logiciel Rodeo, un environnement de développement intégré pour Python inspiré du logiciel RStudio, qui reprend le code source de Jupyter[12].

Le projet Nteract développe une version de Jupyter en application de bureau en utilisant le système Electron[13].

JupyterLab s'appuie sur l’architecture de Jupyter et propose une interface utilisateur repensée et découpée en composants[réf. souhaitée].

Environnements Jupyter

En ligne

Windows

Mac

  • Anaconda

Linux

  • Anaconda
  • Jupyter Lab[18]

Références

  1. « https://jupyter.org/about » (consulté le )
  2. (en) « Jupyter kernels », sur github.com
  3. (en) « Project Jupyter », sur Speaker Deck (consulté le )
  4. ipython/ipython, IPython, (lire en ligne)
  5. jupyter/nbconvert, Project Jupyter, (lire en ligne)
  6. « nbconvert: Convert Notebooks to other formats — nbconvert 6.0.8.dev0 documentation », sur nbconvert.readthedocs.io (consulté le )
  7. « nbviewer », sur nbviewer.jupyter.org (consulté le )
  8. tornadoweb/tornado, tornadoweb, (lire en ligne)
  9. (en) « MyST - Markedly Structured Text », sur myst-parser.readthedocs.io (consulté le )
  10. https://irkernel.github.io/
  11. (en) « Julia kernel for Jupyter », sur github.com
  12. « Rodeo », sur www.yhat.com
  13. (en) « interact: write your next code-driven story », sur nteract.io
  14. « Azure Notebooks »
  15. « Binder »
  16. « Colaboratory »
  17. « Jupyter Portable »
  18. « Jupyter Lab »

Annexes

Articles connexes

Liens externes

  • Portail des données
  • Portail des probabilités et de la statistique
  • Portail des logiciels libres
Cet article est issu de Wikipedia. Le texte est sous licence Creative Commons - Attribution - Partage dans les Mêmes. Des conditions supplémentaires peuvent s'appliquer aux fichiers multimédias.