Article de reference

IPython

IPython (Interactive Python) est un interpréteur de commandes permettant l'informatique interactive dans plusieurs langages de programmation. Initialement développé pour le lang...

IPython (Interactive Python) est un interpréteur de commandes permettant l'informatique interactive dans plusieurs langages de programmation. Initialement développé pour le langage Python , il offre l'introspection , la prise en charge des médias , la syntaxe du shell, la complétion automatique et l'historique. IPython propose les fonctionnalités suivantes :

  • shells interactifs (terminal et basé sur Qt ).
  • Une interface de type bloc-notes basée sur un navigateur , prenant en charge le code, le texte, les expressions mathématiques, les graphiques intégrés et d'autres médias.
  • Prise en charge de la visualisation interactive des données et de l'utilisation des boîtes à outils d'interface graphique.
  • Des interpréteurs flexibles et intégrables à charger dans ses propres projets.
  • Outils pour le calcul parallèle .

IPython est un projet parrainé fiscalement par NumFOCUS .

Calcul parallèle

Vue architecturale du mécanisme parallèle d'IPython

IPython repose sur une architecture permettant le calcul parallèle et distribué. IPython permet de développer, d'exécuter, de déboguer et de surveiller des applications parallèles de manière interactive, d'où le « I » (Interactif) dans IPython. Cette architecture abstrait le parallélisme, permettant à IPython de prendre en charge différents styles de parallélisme , notamment :

Avec la sortie d'IPython 4.0, les fonctionnalités de calcul parallèle sont devenues optionnelles et sont désormais disponibles via le package Python ipyparallel . La plupart des fonctionnalités d'ipyparallel sont aujourd'hui couvertes par des bibliothèques plus abouties comme Dask .

IPython utilise fréquemment des bibliothèques de la suite SciPy telles que NumPy et SciPy , souvent installées avec l'une des nombreuses distributions Python scientifiques. IPython s'intègre avec certaines bibliothèques de la suite SciPy , notamment matplotlib , permettant la création de graphiques intégrés lorsqu'il est utilisé avec Jupyter Notebook. Les bibliothèques Python peuvent implémenter des points d'extension spécifiques à IPython pour personnaliser l'affichage des objets. SymPy, par exemple, affiche les expressions mathématiques sous forme de LaTeX lorsqu'elles sont utilisées dans IPython, et les dataframes Pandas utilisent une représentation HTML.

Autres fonctionnalités

IPython permet une interaction non bloquante avec Tkinter , PyGTK , PyQt / PySide et wxPython (l'interpréteur de commandes Python standard ne permet l'interaction qu'avec Tkinter). IPython peut gérer interactivement des clusters de calcul parallèle à l'aide de rappels d'état asynchrones et/ou de MPI . IPython peut également être utilisé comme alternative à l'interpréteur de commandes système. Son comportement par défaut est globalement similaire à celui des interpréteurs de commandes Unix , mais il offre des possibilités de personnalisation et la flexibilité d'exécuter du code dans un environnement Python dynamique.

Fin du support de Python 2

La série IPython 5.x (Long Time Support) est la dernière version d'IPython compatible avec Python 2. Le projet IPython s'est engagé à ne plus prendre en charge Python 2 après 2020 en étant l'un des premiers projets à rejoindre la déclaration Python 3. La série 6.x est donc compatible uniquement avec Python 3 et versions ultérieures. Il est toutefois possible d'exécuter un noyau IPython et un serveur Jupyter Notebook sur des versions différentes de Python, ce qui permet aux utilisateurs d'accéder à Python 2 avec des versions plus récentes de Jupyter.

Projet Jupyter

Ancienne interface IPython Notebook

En 2014, Fernando Pérez, créateur d'IPython, a annoncé un projet dérivé d'IPython appelé Project Jupyter . IPython a continué d'exister en tant qu'interpréteur Python et noyau pour Jupyter, mais l' interface notebook et les autres parties indépendantes du langage d'IPython ont été déplacées sous le nom de Jupyter. programmation qu'il prend en charge : Julia , Python et R. ]

Jupyter Notebook (anciennement IPython Notebook) est un environnement de calcul interactif en ligne permettant de créer, d'exécuter et de visualiser des notebooks Jupyter. Son interface est similaire à celle d'autres programmes tels que Maple , Mathematica et SageMath , un style d'interface apparu avec Mathematica dans les années 1980 . Il prend en charge des environnements d'exécution ( ou noyaux) dans des dizaines de langages. Par défaut, Jupyter Notebook est fourni avec le noyau IPython, mais il existe plus de 100 noyaux Jupyter (données de mai 2018).

Dans les médias

IPython a été mentionné dans la presse informatique grand public et d'autres médias populaires , et il est présent lors de conférences scientifiques . Pour les travaux scientifiques et d'ingénierie, il est souvent présenté comme un outil complémentaire à matplotlib .

Subventions et récompenses

À compter du 1er janvier 2013, la Fondation Alfred P. Sloan a annoncé qu'elle soutiendrait le développement d'IPython pendant deux ans.

Le 23 mars 2013, Fernando Perez a reçu le prix de la Free Software Foundation pour l'avancement du logiciel libre pour IPython.

En août 2013, Microsoft a fait un don de 100 000 $ pour soutenir le développement continu d’IPython.

En janvier 2014, il a remporté le prix Jolt Productivity Award décerné par Dr. Dobb's dans la catégorie des outils de programmation. En juillet 2015, le projet a obtenu un financement de 6 millions de dollars de la part de la Fondation Gordon et Betty Moore, de la Fondation Alfred P. Sloan et du Leona M. and Harry B. Helmsley Charitable Trust.

En mai 2018, elle a reçu le prix ACM du meilleur système logiciel 2017. Il s'agit de la plus grande équipe à avoir remporté ce prix.