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, simple ou enrichi typographiquement et sémantiquement grace au langage à balises simplifié Markdown, et du code, lignes sources et résultats d'exécution. Ces calepins sont notamment utilisés en science des données pour explorer et analyser des données.
Première version | [1] |
---|---|
Type |
Organisation à but non 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 nouvelle interface utilisateur, publiée en 2018 et destinée à remplacer l'interface classique (Jupyter Notebook). Elle adjoint au carnet de notes classique de nombreux composants personnalisables (terminal, éditeur de texte, navigateur de fichiers, etc.), intégrés et utilisables en parallèle[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[11] et IJulia, un noyau pour le langage Julia[12], maintenus par les principaux développeurs du projet. Un grand nombre de noyaux sont développés et maintenus par la communauté des développeurs. Cela inclut 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[13].
Le projet Nteract développe une version de Jupyter en application de bureau en utilisant le système Electron[14].
JupyterLab s'appuie sur l’architecture de Jupyter et propose une interface utilisateur repensée et découpée en composants.
Références
- « https://jupyter.org/about » (consulté le )
- (en) « Jupyter kernels », sur github.com.
- (en) « Project Jupyter », sur Speaker Deck (consulté le )
- ipython/ipython, IPython, (lire en ligne)
- jupyter/nbconvert, Project Jupyter, (lire en ligne)
- « nbconvert: Convert Notebooks to other formats — nbconvert 6.0.8.dev0 documentation », sur nbconvert.readthedocs.io (consulté le )
- « nbviewer », sur nbviewer.jupyter.org (consulté le )
- tornadoweb/tornado, tornadoweb, (lire en ligne)
- (en) « JupyterLab is Ready for Users », sur The Jupyter Blog, (consulté le ).
- (en) « MyST - Markedly Structured Text », sur myst-parser.readthedocs.io (consulté le )
- https://irkernel.github.io/
- (en) « Julia kernel for Jupyter », sur github.com
- « Rodeo », sur www.yhat.com
- (en) « interact: write your next code-driven story », sur nteract.io
- « Azure Notebooks »
- « Binder »
- « Colaboratory »
- « Jupyter Portable »
- « EDUPYTER »
- « Jupyter Lab »
Annexes
Articles connexes
Liens externes
- (en) Site officiel
- (en) « Documentation d'installation », sur Readthedocs
- (en) « Projet Jupyter », sur GitHub