PyPI : Le guide complet sur le dépôt tiers Python

-
3
 m de lecture
-

Si vous programmez en Python, vous avez inévitablement puisé des outils dans PyPI. Ce qui était à l’origine une plateforme publique de partage de services Python est devenu le pivot central de cet écosystème. Un programmeur Python gagnera à bien comprendre comment fonctionne ce réservoir prêt à l’emploi.

Qu'est ce que PyPI ?

L’Index des Paquets Python (PyPI – Python Package Index) est un réservoir centralisé de paquets open source écrits en Python et librement accessible à tous.  

N’importe quel développeur peut venir y puiser des blocs de construction pour l’un de ses projets : Machine Learning, statistiques, calcul scientifique, outils de représentation graphiques de données…

Inversement, ceux qui ont réalisé des packages peuvent apprécier de partager leur création avec la communauté Python. PyPI compte ainsi près de 500 000 projets.

Comment a été créé PyPI ?

Le projet PyPI a été initié en 2002 par le développeur australien Richard Jones à l’occasion d’une série d’échanges sur le forum de discussion python-dev. L’objectif était de pouvoir standardiser la libre distribution des paquets Python.

Membre particulièrement actif de la communauté Python, Richard Jones participe régulièrement à la PyCon AU, une conférence annuelle sur Python organisée en Australie. Il y donne parfois des conférences, comme en 2021.

Richard Jones a mis en ligne la première version de PyPI en 2003, et peu à peu, de nombreux autres contributeurs bénévoles se sont joints à l’aventure. La Python Software Foundation a aidé au financement de PyPI.

Que trouve-t-on dans PyPI ?

PyPI est accessible depuis le Web à cette adresse. Chaque paquet individuel dispose de sa propre page, indiquant des informations telles que : 
  • description, 
  • métadonnées, 
  • dépendances, 
  • historique des versions…

Comme la plupart des paquets sont open source, PyPI a favorisé une culture de collaboration et de partage, mais aussi stimulé l’innovation, que ce soit par la construction de programmes sur ces solutions existantes, ou par l’envie de proposer des alternatives à ces solutions. Ainsi, celui qui cherche à effectuer de l’extraction de données depuis le Web (ce que l’on appelle le ‘Web Scraping’) dispose sur PyPI de Beautiful Soup, mais aussi de Scrapy et de bien d’autres paquets.

Là n’est pas tout. PyPI propose une API standard qui aide à l’intégration de paquets dans un programme. PyPI est par ailleurs doté d’une infrastructure de serveurs robustes avec une couche de sécurité renforcée.

Comment fonctionne PyPI ?

En tant que programmeur Python, vous avez fait appel à PyPI, sans doute sans le savoir, lorsque avez placé au début d’un programme la commande :

pip install <paquet>

Lors de l’exécution de ce programme, c’est PyPI qui a été sollicité. 

Outil d’installation par défaut, ‘pip’ établit une connexion entre votre ordinateur et PyPI. Il se charge de localiser le paquet demandé mais aussi d’installer une version adaptée à votre ordinateur, à son système d’exploitation, et à votre version de Python. Il en est de même pour les dépendances : si un paquet nécessite une version spécifique d’un autre paquet, cette dépendance est gérée de manière automatique.

Telle est la beauté de la chose. La simple commande ‘pip’ permet à tout un chacun d’installer et mettre à profit des paquets PyPI parfois très développés sans avoir à se soucier des détails internes : PyPI gère lui-même les activités nécessaires au bon fonctionnement du paquet Cette facilité d’accès permise par ‘pip’ a fortement contribué à la croissance de Python.

‘pip’ n’est pas le seul outil accessible aux usages de PyPI. Il en existe d’autres, notamment :

  • ‘twine’ qui est dédié au téléchargement par un développeur d’un paquet qu’il a créé vers PyPI ;
  • ‘setuptools’ qui permet de définir les métadonnées d’un paquet, d’en spécifier les dépendances, les éventuelles extensions en C ou C++, etc.

Est-ce que PyPI est sûr ?

En mars et avril 2023, la Python Software Foundation a reçu trois assignations du ministère de la Justice Américain. La raison ? Le gouvernement américain cherche à identifier des acteurs qui auraient infecté PyPI avec du code malicieux. Il se trouve que, comme toute plateforme, PyPI n’est pas à l’abri de menaces. Les nouveaux paquets font régulièrement l’objet d’audits afin de vérifier leur conformité à un niveau élevé de sécurité. Toutefois, la prudence reste de mise vis-à-vis des paquets fraîchement arrivés sur PyPI.

Les grands usagers de PyPI

Dans la mesure où PyPI est le principal index des paquets Python, un très grand nombre d’entreprises majeures y ont recours. Si habituellement, elles développent leurs propres outils en interne, il est courant qu’elles puisent dans PyPI des paquets publics. Parmi les grands usagers de PyPI figurent :

NASA

Une énorme partie de la programmation réalisée par l’agence spatiale repose sur Python.

IBM

IBM s’appuie sur Python pour ses développements dans le cloud et diverses autres activités.

Microsoft

Azure, le service de cloud computing de Microsoft intègre de plus en plus d’outils programmés en Python.

Google

Le géant de la recherche a toujours été un grand partisan de l’écosystème Python.

Instagram

Cette célèbre application de partage de photographies repose sur Django, un framework Python.

Netflix

Le n°1 de la diffusion de films de streaming se sert de Python pour le backend de certains services, comme pour l’analyse des données.

Dropbox

Ce service de stockage a été originellement réalisé majoritairement en Python. D’autres langages et technologies ont été ajoutés à l’édifice par la suite.

Un élément essentiel de l'écosystème Python

Retenons que PyPI n’est pas seulement un réservoir de paquets Python : c’est le pivot central de l’écosystème Python. Si cette infrastructure n’avait pas été mise en place, la distribution et la découverte de tels paquets seraient bien plus complexes.

Facebook
Twitter
LinkedIn

DataScientest News

Inscrivez-vous à notre Newsletter pour recevoir nos guides, tutoriels, et les dernières actualités data directement dans votre boîte mail.

Vous souhaitez être alerté des nouveaux contenus en data science et intelligence artificielle ?

Laissez-nous votre e-mail, pour que nous puissions vous envoyer vos nouveaux articles au moment de leur publication !

Newsletter icone
icon newsletter

DataNews

Vous souhaitez recevoir notre
newsletter Data hebdomadaire ?