24 библиотеки на Python за всеки разработчик на Python

Искате добра причина за смазващия успех на езика за програмиране Python? Не търсете повече от огромната колекция от библиотеки, налични за Python, както местни, така и библиотеки на трети страни. С толкова много библиотеки на Python, обаче, не е изненадващо, че някои не получават цялото внимание, което заслужават. Освен това програмистите, които работят изключително в един домейн, не винаги знаят за екстри, достъпни за други видове работа.

Ето 24 библиотеки на Python, които може би сте пренебрегнали, но определено си заслужават вниманието. Тези скъпоценни камъни изпълняват обхвата на полезността, опростявайки всичко - от достъп до файлова система, програмиране на бази данни и работа с облачни услуги до създаване на леки уеб приложения, създаване на графични интерфейси и работа с изображения, електронни книги и файлове на Word - и много други освен това. Някои са добре известни, други по-малко известни, но всички тези библиотеки на Python заслужават място във вашата кутия с инструменти.

Apache Libcloud

Какво прави Libcloud: Достъп до множество доставчици на облак чрез един, последователен, унифициран API.

Защо да използваме Libcloud: Ако горното описание на Apache Libcloud не ви кара да пляскате с ръце от радост, значи не сте опитвали да работите с множество облаци. Всички доставчици на облачни услуги обичат да правят нещата по свой начин, като създават единен механизъм за работа с десетки доставчици, който спестява много време и успокоява главоболието. Налични са API за изчисляване, съхранение, балансиране на натоварването и DNS, с поддръжка за Python 2.x и Python 3.x, както и PyPy, JIT компилатор за повишаване на производителността за Python.

Стрелка

Какво прави Arrow: По-чисто боравене с дати и часове в Python.

Защо да използваме стрелка: Справяне с часовите зони, преобразуването на дати, форматите на дати, а всичко останало вече е главоболие и половина. Хвърлете стандартната библиотека на Python за работа с дата / час и ще получите две главоболия и половина.

Arrow предоставя четири големи предимства. Първият, Arrow е заместващ модул за модула за дата и час на Python, което означава, че общата функция извиква like .now()и .utcnow()работи според очакванията. Второ, Arrow предоставя методи за общи нужди като преместване и преобразуване на часовите зони. Трето, Arrow предоставя „хуманизирана“ информация за дата / час - като например да може да каже, че нещо се е случило „преди час“ или ще се случи „след два часа“, без много усилия. Четири, Arrow може да локализира информацията за дата / час, без да се поти.

Ето

Какво е ето:  Силна поддръжка за отстраняване на грешки в стил на печат в Python.

Защо да използваме Behold:  Има един прост начин за отстраняване на грешки в Python или почти всеки език за програмиране по този въпрос: Вмъкване на редове в редове print. Но докато отстраняването на грешки при печат не е особено полезно в малките програми, не е толкова лесно да се получат полезни резултати в рамките на големи, разтегнати многомодулни проекти.

Ето, предоставя набор от инструменти за контекстно отстраняване на грешки чрез печатни изявления. Тя ви позволява да наложите еднакъв вид на изхода, да маркирате резултатите, за да могат да бъдат сортирани чрез търсения или филтри и да предоставите контекст между модулите, така че функциите, които произхождат от един модул, да могат да бъдат отстранени правилно в друг. Ето, обработва много често срещани специфични за Python сценарии като отпечатване на вътрешен речник на обект, разкриване на вложени атрибути и съхраняване и повторно използване на резултатите за сравнение в други точки по време на процеса на отстраняване на грешки.

Черен

Какво прави Black: Форматира Python кода според строг и почти напълно неизменен набор от правила.

Защо да използваме Black:  Форматиращите кодове на Python, като YAPF, обикновено имат много конфигурируеми опции - дължина на реда, опции за разделяне на редове, обработка на последващи запетаи и т.н. Черното прилага последователен набор от настройки по подразбиране за тези правила, които не могат да бъдат променени. Полученият форматиран код е възможно най-последователен между базите на кода и между потребителите, с възможно най-малко разлики между редактираните файлове.

Черното отнема известно време да свикне, особено ако сте придирчиви към вертикалното празно пространство, изявления с дълбоки вложения (например списъци в списъци) и други опции за форматиране. Но в дългосрочен план това ви освобождава от необходимостта да мислите за форматиране, като ви позволява да се концентрирате върху кода си.

Бутилка

Какво прави бутилката: Леки и бързи уеб приложения.

Защо да използваме Bottle: Когато искате да съберете бърз RESTful API или да използвате оголените кости на уеб рамка, за да създадете приложение, способното, но малко бутилка ви дава не повече от необходимото. Маршрутизиране, шаблони, достъп до данни за заявки и отговори, поддръжка за множество типове сървъри от обикновени стари CGI нагоре и поддръжка за по-разширени функции като WebSockets - всичко е тук. Количеството работа, необходимо за започване, също е минимално, а дизайнът на бутилката е елегантно разширяем, когато са необходими по-усъвършенствани функции. 

Щракнете

Какво прави Click:  Позволява ви бързо да изграждате интерфейси на командния ред за приложения на Python.

Защо да използвате Click:  GUI са удобни, но CLI са там, където е истинската мощност. Изграждането на стабилен CLI обаче едва ли е лесно и наборът от инструменти по подразбиране за събиране и използване на опциите на командния ред в Python е примитивен.

Click обгръща тези битове и парчета в API на CLI за изграждане на високо ниво. Ако просто искате да създадете няколко основни команди, можете да го направите с няколко реда код. Ако искате по-усъвършенствано поведение, като например подканване поотделно за повече информация за параметър или извличане на стойности от променливи на околната среда, Click ви е покрил. Click също поддържа цветове на терминали чрез  colorama библиотеката и може да се разшири с приставки на трети страни.

EbookLib

Какво прави EbookLib:  Четете и записвайте .epub файлове.

Защо да използваме EbookLib:  Създаването на електронни книги обикновено изисква разбъркване на един или друг инструмент на командния ред. EbookLib предоставя инструменти за управление и API, които опростяват процеса. Работи с файлове EPUB 2 и EPUB 3, с поддръжка на Kindle в процес на разработка.

Предоставете изображенията и текста (последният във формат HTML) и EbookLib може да сглоби тези части в електронна книга, пълна с глави, вложено съдържание, изображения, HTML маркиране и т.н. Данните за корицата, гръбначния стълб и таблицата със стилове също се поддържат. Приставката позволява на трети страни да разширят поведението на библиотеката.

Ако не се нуждаете от всичко, което EbookLib предлага, опитайте Mkepub. Mkepub пакетира основната функционалност за сглобяване на електронни книги в библиотека с размер само няколко килобайта. Един незначителен недостатък на Mkepub е, че той изисква Jinja2, който от своя страна изисква библиотеката MarkupSafe.

Гъвкав

Какво прави Gooey:  Дайте на базата на конзола програма на Python графичен потребителски интерфейс, роден на платформа.

Защо да използвате Gooey:  Представянето на потребители, особено на потребителите с ранг и файлове, с интерфейс на командния ред е сред най-добрите начини да обезкуражите използването на вашето приложение. Малко освен хардкорните отрепки искат да измислят какви опции да преминат и в какъв ред. Gooey приема аргументи, очаквани от библиотеката argparse, и ги представя на потребителите като GUI форма, чрез библиотеката WxPython. Всички опции са етикетирани и показани с подходящи контроли (като падащо меню за аргумент с няколко опции). За да работи, е необходимо много малко допълнително кодиране - едно включване и един декоратор, ако приемем, че вече използвате argparse.

Извикайте

Какво прави Invoke: Изпълнението на Pythonic от разстояние - т.е. изпълнява администраторски задачи, използвайки библиотека на Python.

Защо да използваме Invoke: Използването на Python като заместител на обичайните задачи за скриптове на черупки има смисъл в света. Invoke предоставя API на високо ниво за изпълнение на команди на черупки и управление на задачи от командния ред, сякаш са функции на Python, което ви позволява да вградите тези задачи във вашия собствен код или елегантно да ги изградите. Само бъдете внимателни, за да не позволите ненадеждно въвеждане да бъде предадено такова, каквото е, на всякакви команди на черупката.

Нуитка

Какво прави Nuitka:  Компилирайте Python в самостоятелни C изпълними файлове.

Защо да използваме Nuitka:  Подобно на Cython, Nuitka компилира Python в C. Въпреки това, докато Cython изисква собствен персонализиран синтаксис за най-добри резултати и се фокусира главно върху приложенията за математика и статистика, Nuitka работи с всяка програма на Python както е, компилира я в C, и създава изпълним файл с един файл, като прилага оптимизации, където може по пътя. Nuitka все още е в начален етап и много от планираните оптимизации тепърва предстоят. Независимо от това, това е удобен начин да превърнете скрипта на Python в бързо приложение на командния ред.

Нумба

Какво прави Numba:  Селективно ускорява математически интензивните функции.

Защо да използваме Numba:  Светът на Python включва цяла субкултура от пакети за ускоряване на математическите операции. Например, NumPy работи чрез опаковане на високоскоростни C библиотеки в интерфейс на Python, а Cython компилира Python в C с незадължително писане за ускорена производителност. Но Numba е лесно най-удобният, тъй като позволява функциите на Python да бъдат ускорено избирателно ускорявани с нищо повече от декоратор. За по-нататъшно повишаване на скоростта можете да използвате общи идиоми на Python за паралелизиране на натоварванията или да използвате инструкции на SIMD или GPU.

Имайте предвид, че можете да използвате NumPy с Numba. В края на краищата NumPy има много готови алгоритми, които не трябва да се прилагат от нулата. Но за малки алгоритми на „ядрото“, Numba в много случаи ще превъзхожда NumPy многократно.

Openpyxl

Какво прави Openpyxl:  Чете, пише и манипулира файлове на Excel.

Защо да използваме OpenPyxl:  Помолете някого да посочи три инструмента, които бройката използва в своята работа, шансовете са, че ще получите Python, R и Excel, не задължително в този ред. Excel (все още) няма вградена свързаност на Python, но пакетите на трети страни преодоляват разликата по различни начини.

Openpyxl работи чрез модифициране на файлове на Excel,   вместо чрез директна манипулация на Excel. С Openpyxl можете да автоматизирате създаването на електронни таблици и работни книги, да генерирате формули, да попълвате клетки с тези формули и да извършвате много други операции. Можете също да промените свойствата на обекти на Excel, като стилове на клетки и условно форматиране. Всеки, който прекарва значително време, взирайки се в електронни таблици, ще намери тук нещо полезно.

Peewee

Какво прави Peewee:  Малък ORM (обектно-релационен картограф), който поддържа SQLite, MySQL и PostgreSQL, с много разширения.

Защо да използваме Peewee:  Не всеки обича ORM; някои биха предпочели да оставят моделирането на схеми от страната на базата данни и да приключат с нея. Но за разработчиците, които не искат да докосват бази данни, добре изградената, ненатрапчива ORM може да бъде божи дар. А за разработчиците, които не искат ORM толкова пълноценна като SQL Alchemy, Peewee е чудесно решение.

Моделите Peewee са лесни за конструиране, свързване и манипулиране. Плюс това, много често срещани функции за манипулиране на заявки, като например разбиване на страници, са вградени точно. Повече функции се предлагат като добавки, включително разширения за други бази данни, инструменти за тестване и система за мигриране на схеми - функция, която дори ORM хейтър може да се научи да любов. Имайте предвид, че клонът Peewee 3.x (препоръчаното издание) не е напълно съвместим с обратната връзка с предишните версии на Peewee.

Възглавница

Какво прави възглавницата:  Обработка на изображения без болка.

Защо да използваме Pillow:  Повечето Pythonistas, които са извършили обработка на изображения, трябва да са запознати с PIL (Python Imaging Library), но PIL е пълен с недостатъци и ограничения и се актуализира рядко. Възглавницата се стреми да бъде едновременно по-лесна за използване и  съвместима с кода с PIL чрез минимални промени. Включени са разширения за разговори както с родните функции за изображения на Windows, така и с Tcl / Tk-подкрепения Tkinter GUI пакет на Python. Възглавницата се предлага чрез GitHub или хранилището на PyPI.

Поезия

Какво прави Poetry:  Управлява зависимости и опаковки за вашите проекти на Python по начин на високо ниво.

Защо да използваме поезия:  На теория не е нужно да правите нищо, за да стартирате нов проект на Python, освен да създадете празна директория и да я попълните с .py файлове. На практика, особено за амбициозен проект, ще трябва да направите много повече - създайте README, настройте някаква структура на папките, декларирайте зависимостите си и т.н. Правенето на всичко това на ръка е главоболие.

Поезията автоматизира голяма част от тази настройка и поддръжка. Изпълнете, за poetry new да създадете нова директория на проекта и виртуална среда, предварително попълнена с основен асортимент от компоненти. Декларирайте вашите зависимости, като използвате собствения файлов формат на pyprojec.toml на Python и Poetry ще ги управлява вместо вас. Съществуващите продукти, управлявани с поезия, могат автоматично да инсталират, обновяват и модифицират своите зависимости от командния ред на Poetry Поезията също се справя с публикуването в отдалечено хранилище (като PyPI).

PyFilesystem

Какво прави PyFilesystem:  Pythonic интерфейс към всяка файлова система -  всяка  файлова система.

Защо да използваме PyFilesystem:  Основната идея зад PyFilesystem не може да бъде по-проста: Точно както fileобектите на Python абстрахират един файл, обектите на PyFilesystem FSабстрахират цяла файлова система. Това не означава само файлови системи на диска. PyFilesystem също така поддържа FTP директории, файлови системи в паметта, файлови системи за местоположения, дефинирани от операционната система (като потребителската директория) и дори комбинации от горните, насложени една върху друга.

В допълнение към улесняването на писането на междуплатформен код, който манипулира файлове, PyFilesystem избягва необходимостта да се калдърят скриптове от различни части на стандартната библиотека, главно  os и  io. Той също така предоставя помощни програми, които в противен случай може да се наложи да създадете от нулата, като инструмент за отпечатване на удобни за конзолата дървовидни изгледи на файлова система.

Pygame

Какво прави Pygame:  Създавайте видео игри или предни части с качество на играта в Python.