Wenn du in Python programmierst, hast du unweigerlich Werkzeuge aus PyPI gezogen. Was ursprünglich als öffentliche Plattform für die gemeinsame Nutzung von Python-Diensten begann, hat sich zum zentralen Dreh- und Angelpunkt dieses Ökosystems entwickelt. Ein Python-Programmierer wird davon profitieren, wenn er genau versteht, wie dieses gebrauchsfertige Reservoir funktioniert.
PyPI, was ist das eigentlich?
Der Python Package Index (PyPI) ist ein zentraler Speicher für Open-Source-Pakete, die in Python geschrieben wurden und für jeden frei zugänglich sind.
Jeder Entwickler kann hier Bausteine für eines seiner Projekte finden: Machine Learning, Statistik, wissenschaftliches Rechnen, Werkzeuge zur grafischen Darstellung von Daten usw.
Umgekehrt können diejenigen, die Pakete erstellt haben, ihre Kreationen gerne mit der Python-Gemeinschaft teilen. PyPI hat fast 500.000 Projekte.
Woher kommt PyPI?
Das PyPI-Projekt wurde 2002 von dem australischen Entwickler Richard Jones im Rahmen einer Reihe von Gesprächen im Diskussionsforum python-dev initiiert. Sein Ziel war es, die freie Verteilung von Python-Paketen zu standardisieren.
Als besonders aktives Mitglied der Python-Gemeinschaft nimmt Richard Jones regelmäßig an der PyCon AU teil, einer jährlich in Australien stattfindenden Python-Konferenz. Manchmal hält er dort auch Vorträge, wie z. B. im Jahr 2021.
Richard Jones stellte 2003 die erste Version von PyPI ins Internet, und nach und nach kamen viele weitere freiwillige Mitwirkende hinzu. Die Python Software Foundation hat bei der Finanzierung von PyPI geholfen.
Was findet man in PyPI?
PyPI ist über das Web unter dieser Adresse erreichbar.
Jedes einzelne Paket hat seine eigene Seite, die Informationen anzeigt wie z.B. :
- Beschreibung,
- Metadaten,
- Abhängigkeiten,
- Versionsgeschichte…
Da die meisten Pakete Open Source sind, hat PyPI eine Kultur der Zusammenarbeit und des Teilens gefördert, aber auch Innovationen angeregt, sei es durch den Bau von Programmen auf diesen bestehenden Lösungen oder durch den Wunsch, Alternativen zu diesen Lösungen anzubieten.
Wer zum Beispiel Daten aus dem Web extrahieren will (das sogenannte Web Scraping), findet auf PyPI Beautiful Soup, Scrapy und viele andere Pakete.
Das ist aber noch nicht alles. PyPI bietet eine Standard-API, die bei der Integration von Paketen in ein Programm hilft.
PyPI verfügt außerdem über eine robuste Serverinfrastruktur mit einer verstärkten Sicherheitsebene.
Wie funktioniert PyPI?
Als Python-Programmierer hast du, wahrscheinlich ohne es zu wissen, PyPI benutzt, wenn du am Anfang eines Programms den Befehl :
pip install <paquet>.
Bei der Ausführung dieses Programms wurde PyPI aufgerufen.
Als Standard-Installationswerkzeug stellt ‚pip‘ eine Verbindung zwischen deinem Computer und PyPI her.
Es sucht nach dem gewünschten Paket und installiert eine Version, die für deinen Computer, sein Betriebssystem und deine Version von Python geeignet ist. Dasselbe gilt für Abhängigkeiten: Wenn ein Paket eine bestimmte Version eines anderen Pakets benötigt, wird diese Abhängigkeit automatisch verwaltet.
Dies ist das Schöne an der Sache. Der einfache Befehl ‚pip‘ ermöglicht es jedem, die manchmal sehr entwickelten PyPI-Pakete zu installieren und zu nutzen, ohne sich um interne Details kümmern zu müssen: PyPI verwaltet selbst die Aktivitäten, die notwendig sind, damit das Paket funktioniert. Diese einfache Zugänglichkeit, die durch ‚pip‘ ermöglicht wird, hat stark zum Wachstum von Python beigetragen.
pip‘ ist nicht das einzige Werkzeug, das für die Zwecke von PyPI zugänglich ist. Es gibt noch andere, darunter :
twine‘, mit dem ein Entwickler ein von ihm erstelltes Paket in PyPI hochladen kann;
setuptools‘, das es ermöglicht, die Metadaten eines Pakets zu definieren, seine Abhängigkeiten, mögliche Erweiterungen in C oder C++ usw. anzugeben.
Ist PyPI sicher?
Im März und April 2023 erhielt die Python Software Foundation drei Vorladungen vom US-Justizministerium.
Der Grund dafür? Die US-Regierung versucht, Akteure zu identifizieren, die PyPI mit bösartigem Code infiziert haben. Wie jede Plattform ist auch PyPI nicht vor Bedrohungen sicher. Neue Pakete werden regelmäßig geprüft, um sicherzustellen, dass sie einem hohen Sicherheitsstandard entsprechen. Dennoch ist bei Paketen, die neu auf PyPI sind, Vorsicht geboten.
Die Hauptnutzer von PyPI
Da PyPI der Hauptindex für Python-Pakete ist, wird er von vielen großen Unternehmen verwendet. Während sie normalerweise ihre eigenen Tools intern entwickeln, ist es üblich, dass sie öffentliche Pakete aus PyPI beziehen. Zu den großen Nutzern von PyPI gehören :
NASA
Ein riesiger Teil der von der Weltraumbehörde durchgeführten Programmierung basiert auf Python.
IBM
IBM setzt auf Python für seine Entwicklungen in der Cloud und verschiedene andere Aktivitäten.
Microsoft
Azure, der Cloud-Computing-Dienst von Microsoft, integriert immer mehr Tools, die in Python programmiert sind.
Der Suchmaschinenriese war schon immer ein großer Befürworter des Python-Ökosystems.
Diese bekannte Anwendung zum Teilen von Fotos basiert auf Django, einem Python-Framework.
Netflix
Die Nr. 1 im Streaming von Filmen nutzt Python für das Backend einiger Dienste, z. B. für die Datenanalyse.
Dropbox
Dieser Speicherdienst wurde ursprünglich hauptsächlich in Python erstellt. Später wurden andere Sprachen und Technologien hinzugefügt.
Ein wesentlicher Bestandteil des Python-Ökosystems
Halten wir fest, dass PyPI nicht nur ein Speicher für Python-Pakete ist:
Es ist der zentrale Dreh- und Angelpunkt des Python-Ökosystems. Ohne diese Infrastruktur wäre die Verteilung und Entdeckung von Paketen viel komplexer.