24 Python-Bibliotheken für jeden Python-Entwickler

Möchten Sie einen guten Grund für den überwältigenden Erfolg der Programmiersprache Python? Suchen Sie nicht weiter als die riesige Sammlung von Bibliotheken, die für Python verfügbar sind, sowohl native Bibliotheken als auch Bibliotheken von Drittanbietern. Bei so vielen Python-Bibliotheken ist es jedoch keine Überraschung, dass einige nicht die Aufmerksamkeit erhalten, die sie verdienen. Außerdem wissen Programmierer, die ausschließlich in einer Domäne arbeiten, nicht immer, welche Extras ihnen für andere Arten von Arbeit zur Verfügung stehen.

Hier sind 24 Python-Bibliotheken, die Sie vielleicht übersehen haben, die aber definitiv Ihre Aufmerksamkeit wert sind. Diese Juwelen bieten eine Vielzahl von nützlichen Funktionen, die den Zugriff auf das Dateisystem, die Datenbankprogrammierung und die Arbeit mit Cloud-Diensten bis hin zum Erstellen leichter Webanwendungen, der Erstellung von GUIs und der Arbeit mit Bildern, E-Books und Word-Dateien vereinfachen. Einige sind bekannt, andere weniger bekannt, aber alle diese Python-Bibliotheken verdienen einen Platz in Ihrer Toolbox.

Apache Libcloud

Was Libcloud tut: Greifen Sie über eine einzige, konsistente, einheitliche API auf mehrere Cloud-Anbieter zu.

Warum Libcloud verwenden: Wenn die obige Beschreibung von Apache Libcloud Sie nicht vor Freude in die Hände klatschen lässt, haben Sie nicht versucht, mit mehreren Clouds zu arbeiten. Cloud-Anbieter lieben es, Dinge auf ihre Weise zu tun, was einen einheitlichen Mechanismus für den Umgang mit Dutzenden von Anbietern zu einer enormen Zeitersparnis und Kopfschmerzen macht. Für Computing, Storage, Load Balancing und DNS stehen APIs zur Verfügung, die Python 2.x und Python 3.x sowie PyPy, den leistungssteigernden JIT-Compiler für Python, unterstützen.

Pfeil

Was Arrow macht: Sauberere Handhabung von Datum und Uhrzeit in Python.

Warum Arrow verwenden: Der Umgang mit Zeitzonen, Datumskonvertierungen, Datumsformaten und allem anderen ist bereits eineinhalb Kopfschmerzen. Wenn Sie die Standardbibliothek von Python für Datums- / Zeitarbeit verwenden, erhalten Sie zweieinhalb Kopfschmerzen.

Pfeil bietet vier große Vorteile. Ein, Pfeil ist eine Drop-in - Ersatz für Python Datetime - Modul, was bedeutet , dass gemeinsame Funktionsaufrufe wie .now()und .utcnow()wie erwartet. Zweitens bietet Arrow Methoden für allgemeine Anforderungen wie das Verschieben und Konvertieren von Zeitzonen. Drittens liefert Arrow "humanisierte" Datums- / Zeitinformationen - beispielsweise die Möglichkeit zu sagen, dass etwas "vor einer Stunde" passiert ist oder "in zwei Stunden" ohne großen Aufwand passieren wird. Viertens kann Arrow Datums- / Uhrzeitinformationen lokalisieren, ohne ins Schwitzen zu geraten.

Erblicken

Was Behold bewirkt:  Robuste Unterstützung für das Debuggen im Druckstil in Python.

Warum Behold verwenden?  Es gibt eine einfache Möglichkeit, in Python oder fast jeder anderen Programmiersprache zu debuggen: Inline- printAnweisungen einfügen . Während das Debuggen von Drucken in kleinen Programmen ein Kinderspiel ist, ist es nicht so einfach, in großen, weitläufigen Projekten mit mehreren Modulen nützliche Ergebnisse zu erzielen.

Behold bietet ein Toolkit für das kontextbezogene Debuggen über print-Anweisungen. Sie können der Ausgabe ein einheitliches Erscheinungsbild verleihen, die Ergebnisse mit Tags versehen, damit sie über Suchvorgänge oder Filter sortiert werden können, und kontextübergreifende Kontexte bereitstellen, damit Funktionen, die von einem Modul stammen, in einem anderen Modul ordnungsgemäß debuggt werden können. Behold behandelt viele gängige Python-spezifische Szenarien wie das Drucken des internen Wörterbuchs eines Objekts, das Aufdecken verschachtelter Attribute sowie das Speichern und Wiederverwenden von Ergebnissen zum Vergleich an anderen Punkten während des Debugging-Prozesses.

Schwarz

Was Schwarz tut: Formatiert Python-Code nach einem strengen und fast unveränderlichen Regelwerk.

Warum verwenden Sie Black:  Python-Code-Formatierer wie YAPF haben in der Regel viele konfigurierbare Optionen - Zeilenlänge, Optionen zum Teilen von Zeilen, Behandlung von nachgestellten Kommas usw. Schwarz wendet eine konsistente Reihe von Standardeinstellungen für die Regeln an, die nicht geändert werden können. Der resultierende formatierte Code ist über die Codebasen und zwischen Benutzern hinweg so konsistent wie möglich, mit den geringstmöglichen Unterschieden zwischen bearbeiteten Dateien.

Schwarz ist gewöhnungsbedürftig, insbesondere wenn Sie sich mit vertikalen Leerzeichen, Anweisungen mit tiefen Verschachtelungen (z. B. Listen in Listen) und anderen Formatierungsoptionen auskennen. Auf lange Sicht müssen Sie jedoch nicht mehr über die Formatierung nachdenken, sondern können sich auf Ihren Code konzentrieren.

Flasche

Was Bottle macht: Leichte und schnelle Web-Apps.

Warum Flasche verwenden: Wenn Sie eine schnelle RESTful-API zusammenstellen oder die nackten Knochen eines Webframeworks verwenden möchten, um eine App zu erstellen, bietet Ihnen eine leistungsfähige, aber winzige Flasche nicht mehr, als Sie benötigen. Routing, Vorlagen, Zugriff auf Anforderungs- und Antwortdaten, Unterstützung für mehrere Servertypen ab normalem CGI und Unterstützung für erweiterte Funktionen wie WebSockets - alles hier. Der Arbeitsaufwand für den Einstieg ist ebenfalls minimal, und das Design von Bottle ist elegant erweiterbar, wenn erweiterte Funktionen benötigt werden. 

Klicken

Was Click macht:  Ermöglicht das schnelle Erstellen von Befehlszeilenschnittstellen für Python-Apps.

Warum Click:  GUIs verwenden sind praktisch, aber CLIs sind dort, wo die eigentliche Leistung liegt. Das Erstellen einer robusten CLI ist jedoch kaum einfach, und das Standard-Toolset zum Sammeln und Verwenden von Befehlszeilenoptionen in Python ist primitiv.

Click verpackt diese Teile in eine übergeordnete CLI-Konstruktions-API. Wenn Sie nur ein paar grundlegende Befehle erstellen möchten, können Sie dies mit ein paar Codezeilen tun. Wenn Sie ein erweitertes Verhalten wünschen, z. B. separat nach weiteren Informationen zu einem Parameter fragen oder Werte aus Umgebungsvariablen ableiten möchten, haben Sie Click behandelt. Click unterstützt auch Terminalfarben über die  colorama Bibliothek und kann mit Plug-Ins von Drittanbietern erweitert werden.

EbookLib

Was EbookLib macht:  Lesen und Schreiben von .epub-Dateien.

Warum EbookLib verwenden:  Das Erstellen von E-Books erfordert normalerweise das Auseinandersetzen mit dem einen oder anderen Befehlszeilentool. EbookLib bietet Verwaltungstools und APIs, die den Prozess vereinfachen. Es funktioniert mit EPUB 2- und EPUB 3-Dateien, wobei die Kindle-Unterstützung in der Entwicklung ist.

Stellen Sie die Bilder und den Text bereit (letzterer im HTML-Format), und EbookLib kann diese Teile zu einem E-Book zusammenfügen, das Kapitel, verschachtelte Inhaltsverzeichnisse, Bilder, HTML-Markups usw. enthält. Cover-, Spine- und Stylesheet-Daten werden ebenfalls unterstützt. Ein Plug-In-System ermöglicht es Dritten, das Verhalten der Bibliothek zu erweitern.

Wenn Sie nicht alles benötigen, was EbookLib zu bieten hat, versuchen Sie es mit Mkepub. Mkepub packt grundlegende E-Book-Assembly-Funktionen in eine Bibliothek, die nur wenige Kilobyte groß ist. Ein kleiner Nachteil von Mkepub ist, dass Jinja2 erforderlich ist, für das wiederum die MarkupSafe-Bibliothek erforderlich ist.

Klebrig

Was Gooey macht:  Geben Sie einem konsolenbasierten Python-Programm eine plattformeigene GUI.

Warum Gooey verwenden: Die  Präsentation einer Befehlszeilenschnittstelle für Benutzer, insbesondere für einfache Benutzer, ist eine der besten Möglichkeiten, die Verwendung Ihrer Anwendung zu verhindern. Nur wenige außer dem Hardcore-Freak können herausfinden, welche Optionen in welcher Reihenfolge weitergegeben werden müssen. Gooey verwendet die von der argparse-Bibliothek erwarteten Argumente und präsentiert sie den Benutzern über die WxPython-Bibliothek als GUI-Formular. Alle Optionen sind beschriftet und werden mit geeigneten Steuerelementen angezeigt (z. B. ein Dropdown-Menü für ein Argument mit mehreren Optionen). Es ist nur sehr wenig zusätzliche Codierung erforderlich - ein einzelnes Include und ein einzelner Dekorator -, damit es funktioniert, vorausgesetzt, Sie verwenden bereits argparse.

Aufrufen

Was Invoke bewirkt: Pythonic-Remote-Ausführung - dh Administratoraufgaben mithilfe einer Python-Bibliothek ausführen.

Warum Invoke verwenden: Die Verwendung von Python als Ersatz für allgemeine Shell-Skriptaufgaben ist sinnvoll. Invoke bietet eine allgemeine API zum Ausführen von Shell-Befehlen und zum Verwalten von Befehlszeilenaufgaben, als wären sie Python-Funktionen. So können Sie diese Aufgaben in Ihren eigenen Code einbetten oder elegant um sie herum erstellen. Achten Sie nur darauf, dass nicht vertrauenswürdige Eingaben nicht unverändert an Shell-Befehle übergeben werden.

Nuitka

Was Nuitka tut:  Kompilieren Sie Python in eigenständige ausführbare C-Dateien.

Warum Nuitka verwenden:  Wie Cython kompiliert Nuitka Python in C. Während Cython eine eigene benutzerdefinierte Syntax für beste Ergebnisse benötigt und sich hauptsächlich auf Mathematik- und Statistikanwendungen konzentriert, arbeitet Nuitka mit jedem Python-Programm wie es ist, kompiliert es in C, und erstellt eine ausführbare Datei mit einer einzelnen Datei, wobei Optimierungen angewendet werden, wo dies möglich ist. Nuitka befindet sich noch in einem frühen Stadium und viele der geplanten Optimierungen stehen noch aus. Trotzdem ist es eine bequeme Möglichkeit, ein Python-Skript in eine schnelle Befehlszeilen-App zu verwandeln.

Numba

Was Numba macht:  Beschleunigen Sie selektiv mathematikintensive Funktionen.

Warum Numba verwenden:  Die Python-Welt enthält eine ganze Subkultur von Paketen zur Beschleunigung von mathematischen Operationen. Zum Beispiel verpackt NumPy Hochgeschwindigkeits-C-Bibliotheken in eine Python-Oberfläche, und Cython kompiliert Python mit optionaler Eingabe in C, um die Leistung zu beschleunigen. Numba ist jedoch mit Sicherheit das bequemste, da Python-Funktionen mit nur einem Dekorateur selektiv beschleunigt werden können. Für weitere Geschwindigkeitssteigerungen können Sie gängige Python-Redewendungen verwenden, um Workloads zu parallelisieren, oder SIMD- oder GPU-Anweisungen verwenden.

Beachten Sie, dass Sie NumPy mit Numba verwenden können. Schließlich verfügt NumPy über viele sofort einsatzbereite Algorithmen, die nicht von Grund auf neu implementiert werden müssen. Bei kleinen „Kernel“ -Algorithmen übertrifft Numba NumPy in vielen Fällen um ein Vielfaches.

Openpyxl

Was Openpyxl macht:  Liest, schreibt und bearbeitet Excel-Dateien.

Warum OpenPyxl verwenden?  Bitten Sie jemanden, drei Tools zu nennen, die Number Crunchers in ihrer Arbeit verwenden. Wahrscheinlich erhalten Sie Python, R und Excel, nicht unbedingt in dieser Reihenfolge. Excel verfügt (noch) nicht über native Python-Konnektivität, aber Pakete von Drittanbietern haben die Lücke auf verschiedene Weise geschlossen.

Openpyxl funktioniert durch Ändern von Excel- Dateien,  anstatt Excel direkt zu bearbeiten  . Mit Openpyxl können Sie die Erstellung von Tabellenkalkulationen und Arbeitsmappen automatisieren, Formeln generieren, Zellen mit diesen Formeln füllen und viele andere Vorgänge ausführen. Sie können auch die Eigenschaften von Excel-Objekten ändern, z. B. Zellstile und bedingte Formatierung. Jeder, der viel Zeit damit verbringt, auf Tabellen zu starren, findet hier etwas Nützliches.

Peewee

Was Peewee macht:  Ein winziger ORM (Object Relational Mapper), der SQLite, MySQL und PostgreSQL mit vielen Erweiterungen unterstützt.

Warum Peewee verwenden:  Nicht jeder liebt einen ORM; Einige möchten die Schemamodellierung lieber auf der Datenbankseite belassen und damit fertig sein. Für Entwickler, die keine Datenbanken berühren möchten, kann ein gut aufgebautes, unauffälliges ORM ein Glücksfall sein. Und für Entwickler, die kein ORM wollen, das so umfassend ist wie SQL Alchemy, ist Peewee eine gute Wahl.

Peewee-Modelle sind einfach zu konstruieren, zu verbinden und zu manipulieren. Darüber hinaus sind viele gängige Funktionen zur Bearbeitung von Abfragen wie die Paginierung integriert. Weitere Funktionen sind als Add-Ons verfügbar, darunter Erweiterungen für andere Datenbanken, Testtools und ein Schema-Migrationssystem - eine Funktion, die selbst ein ORM-Hasser erlernen könnte Liebe. Beachten Sie, dass der Peewee 3.x-Zweig (die empfohlene Edition) nicht vollständig abwärtskompatibel mit früheren Versionen von Peewee ist.

Kissen

Was Pillow macht:  Bildverarbeitung ohne Schmerzen.

Warum Pillow verwenden:  Die meisten Pythonisten, die Bildverarbeitung durchgeführt haben, sollten mit PIL (Python Imaging Library) vertraut sein, aber PIL ist mit Mängeln und Einschränkungen behaftet und wird selten aktualisiert. Pillow soll  durch minimale Änderungen sowohl benutzerfreundlicher als auch Code-kompatibel mit PIL sein. Es sind Erweiterungen enthalten, mit denen Sie sowohl mit nativen Windows-Imaging-Funktionen als auch mit dem Tcl / Tk-gestützten Tkinter-GUI-Paket von Python kommunizieren können. Pillow ist über GitHub oder das PyPI-Repository erhältlich.

Poesie

Was Poetry tut:  Verwaltet Abhängigkeiten und Pakete für Ihre Python-Projekte auf hoher Ebene.

Warum Poetry verwenden:  Theoretisch müssen Sie nichts tun, um ein neues Python-Projekt zu starten, außer ein leeres Verzeichnis zu erstellen und es mit .py-Dateien zu füllen. In der Praxis müssen Sie insbesondere für ein ehrgeiziges Projekt viel mehr tun - eine README-Datei erstellen, eine Ordnerstruktur einrichten, Ihre Abhängigkeiten deklarieren usw. All dies von Hand zu tun, bereitet Kopfschmerzen.

Poetry automatisiert einen Großteil dieser Einrichtung und Wartung. Führen Sie poetry new diese Option aus , um ein neues Projektverzeichnis und eine neue virtuelle Umgebung zu erstellen, die mit einer grundlegenden Auswahl an Komponenten gefüllt sind. Deklarieren Sie Ihre Abhängigkeiten im Python-eigenen Dateiformat pyprojec.toml, und Poetry verwaltet sie für Sie. Bei vorhandenen von Poetry verwalteten Produkten können die Abhängigkeiten automatisch über die Befehlszeile von Poetry installiert, aktualisiert und geändert werden. Poetry übernimmt auch das Veröffentlichen in einem Remote-Repository (wie PyPI).

PyFilesystem

Was PyFilesystem macht:  Eine Pythonic-Schnittstelle zu jedem Dateisystem -  jedem  Dateisystem.

Warum PyFilesystem verwenden:  Die Grundidee hinter PyFilesystem könnte nicht einfacher sein: So wie Pythons fileObjekte eine einzelne Datei abstrahieren, FSabstrahieren PyFilesystems Objekte ein gesamtes Dateisystem. Dies bedeutet auch nicht nur Dateisysteme auf der Festplatte. PyFilesystem unterstützt auch FTP-Verzeichnisse, speicherinterne Dateisysteme, Dateisysteme für vom Betriebssystem definierte Speicherorte (z. B. das Benutzerverzeichnis) und sogar Kombinationen der oben genannten Überlagerungen.

PyFilesystem erleichtert nicht nur das Schreiben von plattformübergreifendem Code, der Dateien manipuliert, sondern macht es auch überflüssig, Skripte aus unterschiedlichen Teilen der Standardbibliothek zusammenzuschustern, hauptsächlich  os und  io. Es bietet auch Dienstprogramme, die ansonsten möglicherweise von Grund auf neu erstellt werden müssen, z. B. ein Tool zum Drucken konsolenfreundlicher Baumansichten eines Dateisystems.

Pygame

Was Pygame macht:  Erstellen Sie in Python Videospiele oder Frontends in Spielqualität.