24 biblioteki Pythona dla każdego programisty Pythona

Chcesz dobrego powodu do wielkiego sukcesu języka programowania Python? Nie szukaj dalej niż ogromny zbiór bibliotek dostępnych dla Pythona, zarówno natywnych, jak i bibliotek innych firm. Jednak przy tak wielu bibliotekach Pythona nie jest zaskoczeniem, że niektóre nie przyciągają całej uwagi, na jaką zasługują. Ponadto programiści pracujący wyłącznie w jednej domenie nie zawsze wiedzą o dobrodziejstwach dostępnych dla innych rodzajów pracy.

Oto 24 biblioteki Pythona, które mogłeś przeoczyć, ale zdecydowanie warte są Twojej uwagi. Te klejnoty oferują szeroką gamę użyteczności, upraszczając wszystko, od dostępu do systemu plików, programowania baz danych i pracy z usługami w chmurze, po tworzenie lekkich aplikacji internetowych, tworzenie GUI, pracę z obrazami, ebookami i plikami Word - i wiele więcej. Niektóre są dobrze znane, inne mniej znane, ale wszystkie te biblioteki Pythona zasługują na miejsce w Twoim zestawie narzędzi.

Apache Libcloud

Co robi Libcloud: Uzyskaj dostęp do wielu dostawców chmury za pośrednictwem jednego, spójnego, ujednoliconego interfejsu API.

Dlaczego warto korzystać z Libcloud: Jeśli powyższy opis Apache Libcloud nie sprawia, że ​​klasniesz w dłonie z radości, to nie próbowałeś pracować z wieloma chmurami. Wszyscy dostawcy usług w chmurze uwielbiają robić wszystko po swojemu, dzięki czemu ujednolicony mechanizm obsługi dziesiątek dostawców pozwala zaoszczędzić mnóstwo czasu i uspokoić ból głowy. Dostępne są interfejsy API do obliczeń, pamięci masowej, równoważenia obciążenia i DNS, z obsługą języków Python 2.x i Python 3.x, a także PyPy, zwiększającego wydajność kompilatora JIT dla języka Python.

Strzałka

Co robi Arrow: czystsza obsługa dat i godzin w Pythonie.

Dlaczego warto używać Arrow: zajmowanie się strefami czasowymi, konwersjami dat, formatami dat i całą resztą jest już i pół bólu głowy. Wrzuć standardową bibliotekę Pythona do pracy z datą / godziną, a dostaniesz dwa i pół bólu głowy.

Arrow ma cztery duże zalety. Jeden, Strzałka jest zamiennik dla datetime moduł Pythona, co oznacza, że wspólne rozmowy działają jak .now()i .utcnow()pracy zgodnie z oczekiwaniami. Po drugie, Arrow zapewnia metody dla typowych potrzeb, takich jak przesuwanie i konwertowanie stref czasowych. Po trzecie, Arrow dostarcza „zhumanizowanych” informacji o dacie / godzinie - na przykład jest w stanie powiedzieć, że coś wydarzyło się „godzinę temu” lub wydarzy się „za dwie godziny” bez większego wysiłku. Po czwarte, Arrow może bez wysiłku zlokalizować informacje o dacie / godzinie.

Ujrzeć

Co robi Behold:  solidna obsługa debugowania w stylu drukowania w Pythonie.

Dlaczego warto używać programu Behold:  Jest jeden prosty sposób debugowania w Pythonie lub prawie każdym języku programowania: wstawianie printinstrukcji in-line . Ale chociaż debugowanie druku nie wymaga myślenia w małych programach, nie jest łatwo uzyskać użyteczne wyniki w dużych, rozległych, wielomodułowych projektach.

Behold zapewnia zestaw narzędzi do debugowania kontekstowego za pomocą instrukcji print. Pozwala nadać wynikowi jednolity wygląd, oznaczyć wyniki, aby można je było sortować za pomocą wyszukiwań lub filtrów, a także zapewnia konteksty między modułami, dzięki czemu funkcje pochodzące z jednego modułu można poprawnie debugować w innym. Oto obsługa wielu typowych scenariuszy specyficznych dla Pythona, takich jak drukowanie wewnętrznego słownika obiektu, odkrywanie zagnieżdżonych atrybutów oraz przechowywanie i ponowne wykorzystywanie wyników do porównania w innych punktach podczas procesu debugowania.

czarny

Co robi Black: formatuje kod Pythona zgodnie ze ścisłym i prawie całkowicie niezmiennym zestawem reguł.

Dlaczego warto używać Black:  Pythonowe elementy formatujące kod, takie jak YAPF, mają zwykle wiele konfigurowalnych opcji - długość linii, opcje dzielenia linii, obsługa końcowych przecinków i tak dalej. Czarny stosuje spójny zestaw wartości domyślnych dla tych reguł, których nie można zmienić. Wynikowy sformatowany kod jest tak spójny, jak to tylko możliwe, we wszystkich bazach kodu i między użytkownikami, przy jak najmniejszych różnicach między edytowanymi plikami.

Do czarnego trzeba się trochę przyzwyczaić, zwłaszcza jeśli jesteś wybredny w kwestii pionowych białych znaków, instrukcji z głębokim zagnieżdżeniem (np. Listy na listach) i innych opcji formatowania. Ale na dłuższą metę uwalnia cię od konieczności myślenia o formatowaniu, pozwalając ci skoncentrować się na kodzie.

Butelka

Co robi butelka: Lekkie i szybkie aplikacje internetowe.

Po co używać butelki: jeśli chcesz połączyć szybki interfejs API RESTful lub użyć podstawowych struktur internetowych do zbudowania aplikacji, wydajna, ale niewielka butelka nie zapewnia więcej niż potrzebujesz. Routing, szablony, dostęp do danych żądań i odpowiedzi, obsługa wielu typów serwerów, począwszy od zwykłego starego CGI, oraz obsługa bardziej zaawansowanych funkcji, takich jak WebSockets - to wszystko tutaj. Ilość pracy potrzebnej do rozpoczęcia pracy jest również minimalna, a projekt butelki można elegancko rozszerzyć, gdy potrzebne są bardziej zaawansowane funkcje. 

Kliknij

Do czego  służy Click: umożliwia szybkie tworzenie interfejsów wiersza poleceń dla aplikacji Python.

Dlaczego warto korzystać z Click:  GUI są wygodne, ale CLI to prawdziwa moc. Jednak zbudowanie solidnego CLI nie jest łatwe, a domyślny zestaw narzędzi do zbierania i używania opcji wiersza poleceń w Pythonie jest prymitywny.

Click opakowuje te fragmenty w wysokopoziomowy interfejs API konstrukcji CLI. Jeśli chcesz tylko utworzyć kilka podstawowych poleceń, możesz to zrobić za pomocą kilku wierszy kodu. Jeśli chcesz uzyskać bardziej zaawansowane zachowanie, takie jak oddzielne monitowanie o więcej informacji o parametrze lub wyprowadzanie wartości ze zmiennych środowiskowych, kliknij, aby to zrobić. Click obsługuje również kolory terminali za pośrednictwem  colorama biblioteki i może być rozszerzany za pomocą wtyczek innych firm.

EbookLib

Co robi EbookLib:  Odczyt i zapis plików .epub.

Dlaczego warto korzystać z EbookLib:  Tworzenie e-booków zazwyczaj wymaga posługiwania się jednym lub drugim narzędziem wiersza poleceń. EbookLib zapewnia narzędzia do zarządzania i interfejsy API, które upraszczają proces. Działa z plikami EPUB 2 i EPUB 3, z obsługą Kindle w fazie rozwoju.

Dostarcz obrazy i tekst (ten ostatni w formacie HTML), a EbookLib może złożyć te fragmenty w ebook wraz z rozdziałami, zagnieżdżonym spisem treści, obrazami, znacznikami HTML i tak dalej. Obsługiwane są również dane okładki, grzbietu i arkusza stylów. System wtyczek umożliwia stronom trzecim rozszerzenie zachowań biblioteki.

Jeśli nie potrzebujesz wszystkiego, co ma do zaoferowania EbookLib, wypróbuj Mkepub. Mkepub zawiera podstawowe funkcje składania ebooków w bibliotece o rozmiarze zaledwie kilku kilobajtów. Jedną z drobnych wad Mkepub jest to, że wymaga Jinja2, co z kolei wymaga biblioteki MarkupSafe.

Lepki

Co robi Gooey: nadaj  programowi w Pythonie opartemu na konsoli interfejs graficzny natywny dla platformy.

Dlaczego warto korzystać z Gooey:  Prezentowanie użytkownikom, zwłaszcza użytkownikom z rangą i plikami, interfejsem wiersza poleceń jest jednym z najlepszych sposobów na zniechęcenie do korzystania z aplikacji. Niewielu oprócz zapalonych maniaków lubi zastanawiać się, jakie opcje przekazać i w jakiej kolejności. Gooey pobiera argumenty oczekiwane przez bibliotekę argparse i przedstawia je użytkownikom jako formularz GUI za pośrednictwem biblioteki WxPython. Wszystkie opcje są oznaczone i wyświetlane z odpowiednimi kontrolkami (takimi jak lista rozwijana dla argumentu z wieloma opcjami). Aby to zadziałało, potrzeba bardzo niewiele dodatkowego kodowania - jednego dołączenia i jednego dekoratora - przy założeniu, że używasz już argparse.

Odwołać się

Co robi Invoke: zdalne wykonanie w Pythonie - tj. Wykonywanie zadań administracyjnych przy użyciu biblioteki Python.

Dlaczego warto używać Invoke: Używanie Pythona jako zamiennika dla typowych zadań skryptów powłoki ma sens. Invoke zapewnia wysokopoziomowy interfejs API do uruchamiania poleceń powłoki i zarządzania zadaniami wiersza polecenia tak, jakby były funkcjami Pythona, umożliwiając osadzanie tych zadań we własnym kodzie lub eleganckie tworzenie wokół nich. Po prostu uważaj, aby nie dopuścić do przekazania niezaufanych danych wejściowych bez zmian do jakichkolwiek poleceń powłoki.

Nuitka

Co robi Nuitka:  Skompiluj Pythona do samodzielnych plików wykonywalnych C.

Dlaczego warto korzystać z Nuitka:  Podobnie jak Cython, Nuitka kompiluje Pythona do C. Jednak podczas gdy Cython wymaga własnej, niestandardowej składni dla najlepszych wyników i koncentruje się głównie na aplikacjach matematycznych i statystycznych, Nuitka współpracuje z każdym programem w języku Python w stanie takim, w jakim jest, kompiluje go do C, i tworzy jednoplikowy plik wykonywalny, stosując optymalizacje tam, gdzie jest to możliwe. Nuitka jest wciąż na wczesnym etapie, a wiele z planowanych optymalizacji jeszcze przed nami. Niemniej jednak jest to wygodny sposób na przekształcenie skryptu w Pythonie w szybką aplikację wiersza poleceń.

Numba

Co robi Numba:  Selektywne przyspieszanie funkcji wymagających intensywnej matematyki.

Dlaczego warto korzystać z Numba:  świat Pythona obejmuje całą subkulturę pakietów przyspieszających operacje matematyczne. Na przykład NumPy działa poprzez pakowanie szybkich bibliotek C w interfejs Pythona, a Cython kompiluje Python do C z opcjonalnym pisaniem w celu przyspieszenia wydajności. Ale Numba jest najwygodniejsza, ponieważ umożliwia selektywne przyspieszanie funkcji Pythona przy użyciu tylko dekoratora. Aby jeszcze bardziej zwiększyć szybkość, możesz użyć popularnych idiomów Pythona do zrównoleglenia obciążeń lub użyć instrukcji SIMD lub GPU.

Pamiętaj, że możesz używać NumPy z Numba. W końcu NumPy ma wiele gotowych algorytmów, których nie trzeba implementować od zera. Ale w przypadku małych algorytmów „jądra”, Numba w wielu przypadkach wielokrotnie przewyższa NumPy.

Openpyxl

Co robi Openpyxl:  czyta, zapisuje i obsługuje pliki Excel.

Dlaczego warto korzystać z OpenPyxl:  Poproś kogoś, aby wymienił trzy narzędzia, których używają w swojej pracy osoby przetwarzające liczby, prawdopodobnie otrzymasz Python, R i Excel, niekoniecznie w tej kolejności. Excel nie ma (jeszcze) natywnej łączności w języku Python, ale pakiety innych firm wypełniły tę lukę na różne sposoby.

Openpyxl działa poprzez modyfikowanie plików Excela  ,  zamiast bezpośredniego manipulowania programem Excel. Dzięki Openpyxl możesz zautomatyzować tworzenie arkuszy kalkulacyjnych i skoroszytów, generować formuły, wypełniać komórki tymi formułami i wykonywać wiele innych operacji. Możesz także zmienić właściwości obiektów programu Excel, takie jak style komórek i formatowanie warunkowe. Każdy, kto spędza dużo czasu wpatrując się w arkusze kalkulacyjne, znajdzie tutaj coś przydatnego.

Siusiać; siusianie

Co robi Peewee:  Mały ORM (obiektowo-relacyjny mapper), który obsługuje SQLite, MySQL i PostgreSQL, z wieloma rozszerzeniami.

Dlaczego warto używać Peewee:  Nie każdy kocha ORM; niektórzy woleliby pozostawić modelowanie schematu po stronie bazy danych i skończyć z tym. Ale dla programistów, którzy nie chcą dotykać baz danych, dobrze skonstruowany, dyskretny ORM może być wybawieniem. A dla programistów, którzy nie chcą ORM tak pełnowartościowego jak SQL Alchemy, Peewee jest doskonałym rozwiązaniem.

Modele Peewee są łatwe do skonstruowania, połączenia i manipulowania. Ponadto wiele popularnych funkcji manipulowania zapytaniami, takich jak paginacja, jest wbudowanych bezpośrednio. Więcej funkcji jest dostępnych jako dodatki, w tym rozszerzenia dla innych baz danych, narzędzia testowe i system migracji schematów - funkcja, której nawet nienawidzący ORM mógłby się nauczyć miłość. Należy pamiętać, że gałąź Peewee 3.x (zalecana edycja) nie jest w pełni kompatybilna wstecz z poprzednimi wersjami Peewee.

Poduszka

Co robi Pillow:  Przetwarzanie obrazu bez bólu.

Dlaczego warto korzystać z Pillow:  Większość Pythonistów, którzy zajmowali się przetwarzaniem obrazu, powinna znać PIL (Python Imaging Library), ale PIL jest pełen niedociągnięć i ograniczeń i jest rzadko aktualizowany. Poduszka ma być zarówno łatwiejsza w użyciu, jak i  kompatybilna z kodem PIL poprzez minimalne zmiany. Rozszerzenia są dołączone do komunikacji zarówno z natywnymi funkcjami obrazowania systemu Windows, jak iz pakietem GUI Tkinter wspieranym przez Tcl / Tk w języku Python. Poduszka jest dostępna za pośrednictwem GitHub lub repozytorium PyPI.

Poezja

Co robi Poetry:  zarządza zależnościami i pakietami projektów w języku Python na wysokim poziomie.

Po co używać Poetry:  Teoretycznie nie musisz nic robić, aby rozpocząć nowy projekt w Pythonie, poza utworzeniem pustego katalogu i wypełnieniem go plikami .py. W praktyce, szczególnie w przypadku ambitnego projektu, będziesz musiał zrobić znacznie więcej - utworzyć plik README, ustawić strukturę folderów, zadeklarować swoje zależności i tak dalej. Robienie tego wszystkiego ręcznie to ból głowy.

Poezja automatyzuje większość tej konfiguracji i konserwacji. Uruchom, poetry new aby utworzyć nowy katalog projektu i środowisko wirtualne, wstępnie wypełnione podstawowym asortymentem komponentów. Zadeklaruj swoje zależności za pomocą własnego formatu pliku pyprojec.toml w języku Python, a Poetry zajmie się nimi za Ciebie. Istniejące produkty zarządzane przez Poetry mogą mieć swoje zależności automatycznie instalowane, odświeżane i modyfikowane z wiersza poleceń Poetry. Poezja obsługuje również publikowanie w zdalnym repozytorium (takim jak PyPI).

PyFilesystem

Co robi PyFilesystem:  Interfejs Pythona do dowolnego systemu plików -  dowolnego  systemu plików.

Dlaczego warto korzystać z PyFilesystem:  Podstawowa idea PyFilesystem nie może być prostsza: tak jak fileobiekty Pythona abstraktują pojedynczy plik, FSobiekty PyFilesystem abstraktują cały system plików. Nie oznacza to również tylko systemów plików na dysku. PyFilesystem obsługuje również katalogi FTP, systemy plików w pamięci, systemy plików dla lokalizacji zdefiniowanych przez system operacyjny (takich jak katalog użytkownika), a nawet kombinacje powyższych nałożonych na siebie.

Oprócz ułatwienia pisania kodu wieloplatformowego, który manipuluje plikami, PyFilesystem eliminuje potrzebę łączenia skryptów z różnych części standardowej biblioteki, głównie  os i  io. Udostępnia również narzędzia, które w innym przypadku należałoby utworzyć od zera, takie jak narzędzie do drukowania przyjaznych dla konsoli widoków drzewa systemu plików.

Pygame

Co robi Pygame:  Twórz gry wideo lub interfejsy o jakości gier w Pythonie.