Programování

24 knihoven Pythonu pro každého vývojáře Pythonu

Chcete dobrý důvod pro senzační úspěch programovacího jazyka Python? Nehledejte nic jiného než obrovskou sbírku knihoven dostupných pro Python, ať už nativní, nebo knihovny třetích stran. S tolika knihovnami Pythonu tam není žádným překvapením, že některým se nedostává veškeré pozornosti, kterou si zaslouží. Programátoři, kteří pracují výhradně v jedné doméně, navíc ne vždy vědí o výhodách, které mají k dispozici pro jiné druhy prací.

Zde je 24 knihoven Pythonu, které jste možná přehlédli, ale rozhodně stojí za vaši pozornost. Tyto drahokamy využívají široké spektrum užitečnosti, zjednodušují vše od přístupu k souborovému systému, programování databází a práce s cloudovými službami až po vytváření odlehčených webových aplikací, vytváření grafických uživatelských rozhraní a práci s obrázky, elektronickými knihami a soubory Word - a mnoho dalšího. Některé jsou známé, jiné méně známé, ale všechny tyto knihovny v Pythonu si zaslouží místo ve vaší sadě nástrojů.

Apache Libcloud

Co dělá Libcloud: Získejte přístup k více poskytovatelům cloudu prostřednictvím jediného, ​​konzistentního a jednotného rozhraní API.

Proč používat Libcloud: Pokud vám výše uvedený popis Apache Libcloud nedovolí tleskat rukama od radosti, nezkusili jste pracovat s více mraky. Všichni poskytovatelé cloudu rádi dělají věci po svém, díky čemuž je jednotný mechanismus jednání s desítkami poskytovatelů obrovským šetřičem času a tlumením bolesti hlavy. K dispozici jsou API pro výpočet, skladování, vyrovnávání zatížení a DNS, s podporou Python 2.xa Python 3.x, stejně jako PyPy, kompilátor JIT zvyšující výkon pro Python.

Šipka

Co dělá Arrow: Čistší zpracování dat a časů v Pythonu.

Proč použít Arrow: Práce s časovými pásmy, převody dat, formáty data a vše ostatní je již bolest hlavy a půl. Vrhněte se do standardní knihovny Pythonu pro práci s datem a časem a dostanete dvě bolesti hlavy a půl.

Arrow poskytuje čtyři velké výhody. Jedním z nich je Arrow jako náhrada za datetime modul Pythonu, což znamená, že běžné funkce volají jako .Nyní() a .utcnow () pracovat podle očekávání. Dva, Arrow poskytuje metody pro běžné potřeby, jako je posun a převod časových pásem. Za třetí, Arrow poskytuje „humanizované“ informace o datu / čase - například schopnost říci, že se něco stalo „před hodinou“ nebo se stane „za dvě hodiny“ bez velkého úsilí. Čtyři, Šipka dokáže lokalizovat informace o datu / čase bez potu.

Spatřit

Co Hle dělá: Robustní podpora pro ladění ve stylu tisku v Pythonu.

Proč použít Hle: Existuje jeden jednoduchý způsob ladění v Pythonu nebo v téměř jakémkoli programovacím jazyce: Vložte in-line tisk prohlášení. I když je ladění tisku pro malé programy samozřejmostí, není snadné dosáhnout užitečných výsledků ve velkých, rozlehlých vícemodulových projektech.

Behold poskytuje sadu nástrojů pro kontextové ladění prostřednictvím tiskových příkazů. Umožňuje vám vnutit jednotný vzhled výstupu, označit výsledky, aby je bylo možné třídit pomocí vyhledávání nebo filtrů, a poskytovat kontexty napříč moduly, aby bylo možné správně vyladit funkce, které pocházejí z jednoho modulu v jiném. Hle zpracovává mnoho běžných scénářů specifických pro Python, jako je tisk interního slovníku objektu, odhalení vnořených atributů a ukládání a opětovné použití výsledků pro srovnání v jiných bodech během procesu ladění.

Černá

Co dělá Black: Formáty kódu Pythonu podle přísné a téměř naprosto neměnné sady pravidel.

Proč používat černou: Formátoři kódu v Pythonu, jako je YAPF, mívají mnoho konfigurovatelných možností - délku řádku, možnosti rozdělení řádků, manipulaci s koncovými čárkami atd. Černá použije konzistentní sadu výchozích hodnot pro pravidla, která nelze změnit. Výsledný formátovaný kód je co nejvíce konzistentní napříč základnami kódu a mezi uživateli s nejmenším možným rozdílem mezi upravenými soubory.

Černá si trochu zvykne, zvláště pokud máte zálusk na svislé mezery, příkazy s hlubokými vnořením (např. Seznamy v seznamech) a další možnosti formátování. Z dlouhodobého hlediska vás ale osvobodí od přemýšlení o formátování a umožní vám soustředit se na váš kód.

Láhev

Co dělá láhev: Lehké a rychlé webové aplikace.

Proč používat láhev: Pokud chcete dát dohromady rychlé RESTful API nebo použít holé kosti webového rámce k vytvoření aplikace, schopný, ale malý Bottle vám dá víc, než potřebujete. Směrování, šablony, přístup k datům požadavků a odpovědí, podpora více typů serverů od běžných starých CGI nahoru a podpora pokročilejších funkcí, jako jsou WebSockets - to vše je zde. Množství práce potřebné k zahájení je rovněž minimální a design Bottle je elegantně rozšiřitelný, pokud jsou potřeba pokročilejší funkce. 

Klepněte na

Co dělá Click: Umožňuje vám rychle vytvářet rozhraní příkazového řádku pro aplikace v Pythonu.

Proč používat Click: GUI jsou pohodlné, ale CLI jsou tam, kde je skutečná síla. Vytvoření robustního rozhraní příkazového řádku je však stěží snadné a výchozí sada nástrojů pro shromažďování a používání možností příkazového řádku v Pythonu je primitivní.

Click zabalí tyto kousky do rozhraní API pro konstrukci CLI na vysoké úrovni. Pokud chcete vytvořit jen několik základních příkazů, můžete to udělat pomocí několika řádků kódu. Pokud chcete pokročilejší chování, jako je samostatné vyzývání k získání dalších informací o parametru nebo odvození hodnot z proměnných prostředí, klepněte na tlačítko Pokryté. Click také podporuje barvy terminálu pomocíColorama knihovnu a lze ji rozšířit pomocí doplňků třetích stran.

EbookLib

Co dělá EbookLib: Čtěte a zapisujte soubory .epub.

Proč používat EbookLib:Vytváření elektronických knih obvykle vyžaduje hádky s jedním či druhým nástrojem příkazového řádku. EbookLib poskytuje nástroje pro správu a API, které proces zjednodušují. Funguje se soubory EPUB 2 a EPUB 3, s vývojem podpory Kindle.

Poskytněte obrázky a text (druhý ve formátu HTML) a EbookLib může tyto kousky sestavit do ebooku s kapitolami, vnořeným obsahem, obrázky, značkami HTML atd. Podporována jsou také data obalu, páteře a šablony stylů. Systém zásuvných modulů umožňuje třetím stranám rozšířit chování knihovny.

Pokud nepotřebujete vše, co EbookLib nabízí, vyzkoušejte Mkepub. Mkepub obsahuje základní funkce sestavování ebooků v knihovně o velikosti jen několik kilobajtů. Jednou menší nevýhodou Mkepubu je, že vyžaduje Jinja2, což zase vyžaduje knihovnu MarkupSafe.

Lepkavý

Co dělá Gooey: Dejte konzolovému programu Python GUI s nativní platformou.

Proč používat Gooey: Mezi nejlepší způsoby, jak odradit od používání aplikace, patří uživatelům, zejména řadovým uživatelům, rozhraní příkazového řádku. Málokdo kromě toho tvrdého geeka chtěl zjistit, jaké možnosti předat a v jakém pořadí. Gooey přebírá argumenty očekávané knihovnou argparse a předkládá je uživatelům jako formulář GUI prostřednictvím knihovny WxPython. Všechny možnosti jsou označeny a zobrazeny s příslušnými ovládacími prvky (například rozevírací seznam pro argument s více možnostmi). K tomu, aby to fungovalo, je třeba jen velmi málo dalšího kódování - jeden zahrnout a jeden dekorátor - za předpokladu, že již používáte argparse.

Vyvolat

Co Invoke dělá: Vzdálené spuštění v Pythonu - tj. Provádět úkoly správce pomocí knihovny Pythonu.

Proč použít Invoke: Použití Pythonu jako náhrady za běžné úlohy skriptování prostředí dává smysl. Invoke poskytuje rozhraní API na vysoké úrovni pro spouštění příkazů prostředí a správu úloh příkazového řádku, jako by to byly funkce Pythonu, což vám umožňuje vložit tyto úkoly do vlastního kódu nebo elegantně kolem nich. Jen dávejte pozor, abyste nedovolili nedůvěryhodný vstup předávat tak, jak je, do jakýchkoli příkazů prostředí.

Nuitka

Co dělá Nuitka:Zkompilujte Python do samostatných spustitelných souborů C.

Proč používat Nuitku: Stejně jako Cython, Nuitka kompiluje Python do C. Avšak zatímco Cython vyžaduje vlastní vlastní syntaxi pro dosažení nejlepších výsledků a zaměřuje se hlavně na matematické a statistické aplikace, Nuitka pracuje s jakýmkoli programem Python tak, jak je, kompiluje jej do C a vytváří jediný -file spustitelný soubor, aplikující optimalizace tam, kde to může po cestě. Nuitka je stále v raných fázích a mnoho z plánovaných optimalizací teprve přijde. Je to však pohodlný způsob, jak proměnit skript v Pythonu na rychlou aplikaci příkazového řádku.

Numba

Co dělá Numba:Selektivně urychlit matematické funkce.

Proč používat Numbu:Svět Pythonu zahrnuje celou subkulturu balíčků pro urychlení matematických operací. Například NumPy funguje tak, že zabalí vysokorychlostní C knihovny do rozhraní Pythonu a Cython kompiluje Python do C s volitelným typováním pro zrychlený výkon. Ale Numba je snadno nejvhodnější, protože umožňuje selektivně akcelerovat funkce Pythonu s pouhým dekorátorem. Pro další zvýšení rychlosti můžete použít běžné idiomy Pythonu k paralelizaci úloh nebo použít pokyny SIMD nebo GPU.

Pamatujte, že NumPy můžete používat s Numbou. Koneckonců, NumPy má mnoho out-of-the-box algoritmů, které není třeba implementovat od nuly. Ale u malých „jádrových“ algoritmů Numba v mnoha případech mnohonásobně překoná NumPy.

Openpyxl

Co Openpyxl dělá: Čte, zapisuje a manipuluje se soubory aplikace Excel.

Proč používat OpenPyxl: Požádejte někoho, aby pojmenoval tři nástroje, které počet Cruncherů používá při své práci, pravděpodobně získáte Python, R a Excel, ne nutně v tomto pořadí. Excel (zatím) nemá nativní připojení k Pythonu, ale balíčky třetích stran tuto mezeru překonaly různými způsoby.

Openpyxl funguje úpravou aplikace Excelsoubory spíše než přímou manipulací s Excelem. S Openpyxl můžete automatizovat vytváření tabulek a sešitů, generovat vzorce, naplnit tyto vzorce buňkami a provádět mnoho dalších operací. Můžete také změnit vlastnosti objektů aplikace Excel, například styly buněk a podmíněné formátování. Každý, kdo tráví značný čas zíráním do tabulek, zde najde něco užitečného.

Peewee

Co dělá Peewee: Malý ORM (objektově-relační mapovač), který podporuje SQLite, MySQL a PostgreSQL, s mnoha rozšířeními.

Proč používat Peewee: Ne každý miluje ORM; někteří by raději nechali modelování schémat na straně databáze a skončili s tím. Ale pro vývojáře, kteří se nechtějí dotknout databází, může být dobře vytvořený, nenápadný ORM darem z nebes. A pro vývojáře, kteří nechtějí ORM tak plnohodnotný jako SQL Alchemy, se Peewee skvěle hodí.

Modely Peewee lze snadno sestavit, připojit a manipulovat s nimi. Navíc je přímo zabudováno mnoho běžných funkcí pro manipulaci s dotazy, jako je stránkování. Další funkce jsou k dispozici jako doplňky, včetně rozšíření pro další databáze, testovacích nástrojů a systému pro migraci schémat - což je funkce, kterou by se naučil i nenávistník ORM. milovat. Všimněte si, že větev Peewee 3.x (doporučené vydání) není zcela zpětně kompatibilní s předchozími verzemi Peewee.

Polštář

Co dělá polštář: Zpracování obrazu bez bolesti.

Proč používat polštář: Většina Pythonistů, kteří prováděli zpracování obrazu, by měli být obeznámeni s PIL (Python Imaging Library), ale PIL je plný nedostatků a omezení a aktualizuje se zřídka. Polštář má být jednodušší a kódově kompatibilní s PIL prostřednictvím minimálních změn. Zahrnuty jsou rozšíření pro komunikaci s nativními zobrazovacími funkcemi Windows a s balíčkem Tkinter GUI od Pythonu podporovaného Tcl / Tk. Polštář je k dispozici prostřednictvím GitHub nebo úložiště PyPI.

Poezie

Co dělá poezie: Spravuje závislosti a balení pro vaše projekty v Pythonu na vysoké úrovni.

Proč používat poezii: Teoreticky nemusíte dělat nic pro spuštění nového projektu Pythonu, kromě vytvoření prázdného adresáře a jeho vyplnění .py soubory. V praxi, zejména pro ambiciózní projekt, budete muset udělat mnohem více - vytvořit soubor README, nastavit strukturu složek, deklarovat své závislosti atd. Dělat to všechno ručně je bolest hlavy.

Poezie většinu tohoto nastavení a údržby automatizuje. Běh poezie nová k vytvoření nového adresáře projektu a virtuálního prostředí předem naplněného základním sortimentem komponent. Deklarujte své závislosti pomocí vlastního formátu souboru pyprojec.toml v Pythonu a Poetry je bude spravovat za vás. U stávajících produktů spravovaných poezií lze jejich závislosti automaticky nainstalovat, aktualizovat a upravit z příkazového řádku Poetry. Poezie také zpracovává publikování do vzdáleného úložiště (jako PyPI).

PyFilesystem

Co dělá PyFilesystem: Pythonické rozhraní k jakémukoli systému souborů -žádný souborový systém.

Proč používat PyFilesystem:Základní myšlenka za PyFilesystem nemůže být jednodušší: Stejně jako u Pythonu soubor objekty abstraktní jeden soubor, PyFilesystem FS objekty abstraktní celý souborový systém. To neznamená pouze souborové systémy na disku. PyFilesystem také podporuje adresáře FTP, souborové systémy v paměti, souborové systémy pro umístění definované operačním systémem (například adresář uživatele) a dokonce i kombinace výše uvedených překrývají jeden na druhého.

Kromě usnadnění psaní kódu napříč platformami, který manipuluje se soubory, PyFilesystem odstraňuje potřebu kombinovat skripty z různorodých částí standardní knihovny, hlavněos aio. Poskytuje také nástroje, které by jinak bylo nutné vytvořit od nuly, například nástroj pro tisk konzolových stromových zobrazení souborového systému.

Pygame

Co dělá Pygame: Vytvářejte videohry nebo rozhraní frontendů v kvalitě hry v Pythonu.