Jupyter

Un article de Wikipédia, l'encyclopédie libre.
Jupyter
Description de l'image Jupyter logo.svg.

Informations
Première version [1]Voir et modifier les données sur Wikidata
Type Organisme sans but lucratif
ProjetVoir et modifier les données sur Wikidata
Documentation jupyter.org/documentationVoir et modifier les données sur Wikidata
Site web https://jupyter.org/

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.

Historique[modifier | modifier le code]

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[modifier | modifier le code]

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[modifier | modifier le code]

Jupyter Notebook[modifier | modifier le code]

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[modifier | modifier le code]

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[modifier | modifier le code]

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].

Jupyter Book[modifier | modifier le code]

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[10].

Noyaux[modifier | modifier le code]

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 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 Processingetc.[2].

Versions[modifier | modifier le code]

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[modifier | modifier le code]

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. souhaitée].

Environnements Jupyter[modifier | modifier le code]

En ligne[modifier | modifier le code]

Windows[modifier | modifier le code]

Mac[modifier | modifier le code]

  • Anaconda

Linux[modifier | modifier le code]

  • Anaconda
  • Jupyter Lab[20]

Références[modifier | modifier le code]

  1. « https://jupyter.org/about » (consulté le )
  2. a et b (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) « JupyterLab is Ready for Users », sur The Jupyter Blog, (consulté le ).
  10. (en) « MyST - Markedly Structured Text », sur myst-parser.readthedocs.io (consulté le )
  11. https://irkernel.github.io/
  12. (en) « Julia kernel for Jupyter », sur github.com
  13. « Rodeo », sur www.yhat.com
  14. (en) « interact: write your next code-driven story », sur nteract.io
  15. « Azure Notebooks »
  16. « Binder »
  17. « Colaboratory »
  18. « Jupyter Portable »
  19. « EDUPYTER »
  20. « Jupyter Lab »

Annexes[modifier | modifier le code]

Articles connexes[modifier | modifier le code]

Liens externes[modifier | modifier le code]