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 ?
- 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 :
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.
Le géant de la recherche a toujours été un grand partisan de l’écosystème Python.
Cette célèbre application de partage de photographies repose sur Django, un framework Python.
Netflix
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.