24 Python biblioteke za svakog programera Pythona

Želite dobar razlog za porazan uspjeh programskog jezika Python? Ne tražite dalje od masovne kolekcije knjižnica dostupnih za Python, kako matičnih tako i biblioteka trećih strana. Budući da postoji toliko Python knjižnica, nije iznenađenje da neke ne dobivaju svu pažnju koju zaslužuju. Osim toga, programeri koji rade isključivo na jednoj domeni ne znaju uvijek za dobrote koje su im dostupne za druge vrste poslova.

Evo 24 Python biblioteke koje ste možda previdjeli, ali svakako vrijede vaše pažnje. Ovi dragulji pružaju opseg korisnosti, pojednostavljujući sve, od pristupa datotečnom sustavu, programiranja baza podataka i rada s uslugama u oblaku do izgradnje laganih web aplikacija, izrade GUI-a i rada sa slikama, e-knjigama i Word datotekama - i još mnogo toga. Neke su dobro poznate, druge manje poznate, ali sve ove Python knjižnice zaslužuju mjesto u vašem alatu.

Apache Libcloud

Što Libcloud radi: Pristupite više davatelja usluga u oblaku putem jedinstvenog, dosljednog, objedinjenog API-ja.

Zašto koristiti Libcloud: Ako vas gornji opis Apache Libclouda ne natjera da pljesnete rukama od radosti, onda niste pokušali raditi s više oblaka. Svi pružatelji usluga u oblaku vole raditi stvari na svoj način, čineći jedinstveni mehanizam za postupanje s desecima davatelja usluga ogromnom uštedom vremena i umirujućim glavoboljama. API-ji su dostupni za izračunavanje, pohranu, uravnoteženje opterećenja i DNS, s podrškom za Python 2.x i Python 3.x, kao i PyPy, JIT kompajler za poboljšanje performansi za Python.

Strijela

Što Arrow radi: čišće rukovanje datumima i vremenima u Pythonu.

Zašto koristiti strelicu: Suočavanje s vremenskim zonama, pretvorbama datuma, formatima datuma, a sve ostalo već je glavobolja i pol. Bacite Pythonovu standardnu ​​knjižnicu za rad s datumom i vremenom i dobit ćete dvije glavobolje i pol.

Arrow pruža četiri velike prednosti. Prvo, Arrow je zamjenska zamjena za Pythonov datumski modul, što znači da uobičajena funkcija poziva like .now()i .utcnow()radi prema očekivanjima. Drugo, Arrow nudi metode za uobičajene potrebe poput pomicanja i pretvaranja vremenskih zona. Kao treće, Arrow pruža "humanizirane" podatke o datumu / vremenu - kao što je mogućnost da se bez puno truda kaže da se nešto dogodilo "prije sat vremena" ili da će se dogoditi "za dva sata". Četiri, Arrow može lokalizirati podatke o datumu i vremenu bez da se oznoji.

Eto

Što Evo radi:  Snažna podrška za otklanjanje pogrešaka u stilu ispisa u Pythonu.

Zašto koristiti Behold:  Postoji jedan jednostavan način za otklanjanje pogrešaka u Pythonu ili gotovo bilo kojem programskom jeziku: Umetanje printnaredbi u retku . No iako otklanjanje pogrešaka u ispisu nije nimalo pametno u malim programima, nije tako lako dobiti korisne rezultate unutar velikih, opsežnih projekata s više modula.

Evo pogledajte komplet alata za kontekstualno otklanjanje pogrešaka putem ispisa. Omogućuje vam nametanje jedinstvenog izgleda na izlaz, označavanje rezultata tako da se mogu sortirati putem pretraživanja ili filtara i pružanje konteksta između modula tako da se funkcije koje potječu iz jednog modula mogu ispravno ispraviti u drugom. Evo obrađuje mnoge uobičajene scenarije specifične za Python, poput ispisa internog rječnika objekta, otkrivanja ugniježđenih atributa i pohrane i ponovne upotrebe rezultata za usporedbu na drugim točkama tijekom postupka uklanjanja pogrešaka.

Crno

Što Black radi: formatira Python kôd prema strogom i gotovo potpuno nepromjenjivom skupu pravila.

Zašto koristiti crnu  boju : Python formativači koda, poput YAPF, imaju tendenciju da imaju mnogo mogućnosti koje se mogu konfigurirati - duljinu retka, opcije razdvajanja linija, rukovanje zarezima koji slijede itd. Crna primjenjuje dosljedan skup zadanih vrijednosti za ona pravila koja se ne mogu mijenjati. Rezultirajući formatirani kôd što je više moguće konzistentan između baza koda i između korisnika, s najmanje mogućih razlika između uređenih datoteka.

Crna se treba naviknuti, pogotovo ako ste izbirljivi u vertikalnom razmaku, iskazima s dubokim ugniježđenjima (npr. Popisi unutar popisa) i ostalim mogućnostima oblikovanja. No dugoročno vas oslobađa razmišljanja o formatiranju, koncentrirajući se na svoj kôd.

Boca

Što Bottle radi: lagane i brze web aplikacije.

Zašto koristiti Bottle: Kada želite sastaviti brzi RESTful API ili upotrijebiti gole kosti web okvira za izgradnju aplikacije, sposobna, a majušna bočica pruža vam ne više nego što trebate. Usmjeravanje, predlošci, pristup podacima o zahtjevima i odgovorima, podrška za više vrsta poslužitelja od običnog starog CGI-a naviše i podrška za naprednije značajke poput WebSockets-a - sve je ovdje. Količina posla potrebna za početak je također minimalna, a dizajn boce elegantno se proširuje kada su potrebne naprednije funkcije. 

Klik

Što Click radi:  omogućuje vam brzu izgradnju sučelja naredbenog retka za Python aplikacije.

Zašto koristiti Click:  GUI su prikladni, ali CLI su tamo gdje je stvarna snaga. Međutim, izgradnja robusnog CLI-a teško je jednostavna, a zadani skup alata za prikupljanje i korištenje opcija naredbenog retka u Pythonu je primitivan.

Click omotava te dijelove i dijelove u API za izradu CLI-a na visokoj razini. Ako samo želite stvoriti nekoliko osnovnih naredbi, to možete učiniti s nekoliko redaka koda. Ako želite naprednije ponašanje, poput odvojenog zatraživanja dodatnih informacija o parametru ili izvođenja vrijednosti iz varijabli okoline, Click je to pokrivao. Click također podržava boje terminala putem  colorama knjižnice, a može se proširiti dodacima nezavisnih proizvođača.

EbookLib

Što EbookLib radi:  Čitajte i pišite .epub datoteke.

Zašto koristiti EbookLib:  Stvaranje e-knjiga obično zahtijeva premetanje jednog ili drugog alata naredbenog retka. EbookLib nudi alate za upravljanje i API-je koji pojednostavljuju postupak. Radi s datotekama EPUB 2 i EPUB 3, s podrškom za Kindle u razvoju.

Navedite slike i tekst (potonji u HTML formatu), a EbookLib može te dijelove sastaviti u e-knjigu zajedno s poglavljima, ugniježđenim sadržajem, slikama, HTML oznakama i tako dalje. Podržani su i podaci o naslovnici, kralježnici i tablici stilova. Dodatak omogućuje trećim stranama da prošire ponašanje knjižnice.

Ako vam nije potrebno sve što EbookLib nudi, isprobajte Mkepub. Mkepub spakira osnovnu funkcionalnost montaže e-knjiga u knjižnicu koja je velika samo nekoliko kilobajta. Jedan manji nedostatak Mkepub-a je taj što mu je potrebna Jinja2, a ona pak zahtijeva knjižnicu MarkupSafe.

Gnjecav

Što Gooey radi:  Dajte programu Python temeljen na konzoli GUI koji je izvorni za platformu.

Zašto koristiti Gooey:  Predstavljanje korisnika, posebno korisnika s redoslijedom, sučeljem naredbenog retka jedan je od najboljih načina za obeshrabrivanje upotrebe vaše aplikacije. Rijetki osim žestokih štrebera vole smišljati koje opcije treba proći i kojim redoslijedom. Gooey uzima argumente koje očekuje biblioteka argparse i prezentira ih korisnicima kao GUI obrazac, putem WxPython biblioteke. Sve su opcije označene i prikazane odgovarajućim kontrolama (poput padajućeg izbornika za argument s više opcija). Za njegovo funkcioniranje potrebno je vrlo malo dodatnog kodiranja - jedno uključivanje i jedan dekorator - pod pretpostavkom da već koristite argparse.

Prizivati

Što Invoke radi: Pythonic daljinsko izvršavanje - tj. Izvršavanje administrativnih zadataka pomoću Python biblioteke.

Zašto koristiti Invoke: Korištenje Pythona kao zamjene za uobičajene zadatke skriptiranja ljuske ima smisla u svijetu. Invoke nudi API na visokoj razini za izvođenje naredbi ljuske i upravljanje zadacima naredbenog retka kao da su to Python funkcije, omogućujući vam ugradnju tih zadataka u vlastiti kôd ili elegantnu izgradnju oko njih. Samo pripazite da ne dopustite da se nepouzdani unos proslijedi takav kakav jest bilo kojim naredbama ljuske.

Nuitka

Što Nuitka radi: Sastavlja  Python u samostalne C izvršne datoteke.

Zašto koristiti Nuitku:  Poput Cythona, Nuitka kompajlira Python u C. Međutim, dok Cython zahtijeva vlastitu prilagođenu sintaksu za najbolje rezultate i usredotočuje se uglavnom na matematičke i statističke programe, Nuitka radi s bilo kojim Python programom kakav jest, kompajlira ga u C i proizvodi izvršnu datoteku od jedne datoteke, primjenjujući optimizacije tamo gdje može. Nuitka je još uvijek u ranoj fazi, a mnoge od planiranih optimizacija tek slijede. Ipak, to je prikladan način za pretvaranje Python skripte u brzu aplikaciju naredbenog retka.

Numba

Što Numba radi:  Selektivno ubrzava matematičke funkcije.

Zašto koristiti Numbu:  Python svijet uključuje čitavu potkulturu paketa za ubrzavanje matematičkih operacija. Na primjer, NumPy radi omotavanjem brzih C biblioteka u Python sučelje, a Cython kompajlira Python u C uz neobavezno tipkanje za ubrzane performanse. Ali Numba je lako najprikladnija, jer omogućuje selektivno ubrzavanje Python funkcija samo s dekoratorom. Za daljnja povećanja brzine možete upotrijebiti uobičajene Python idiome za paraleliziranje radnog opterećenja ili upotrijebiti SIMD ili GPU upute.

Imajte na umu da NumPy možete koristiti s Numbom. Napokon, NumPy ima mnoge gotove algoritme koje nije potrebno implementirati od nule. Ali za male algoritme "jezgre", Numba će u mnogim slučajevima višestruko nadmašiti NumPy.

Openpyxl

Što Openpyxl radi:  čita, piše i manipulira Excel datotekama.

Zašto koristiti OpenPyxl:  Zamolite nekoga da imenuje tri alata koja brojni drobilici koriste u svom radu, velika je vjerojatnost da ćete dobiti Python, R i Excel, ne nužno tim redoslijedom. Excel (još) nema nativnu Python povezivost, ali paketi trećih strana premostili su jaz na razne načine.

Openpyxl djeluje tako što mijenja Excel  datoteke,  a ne izravno manipulira Excelom. Pomoću Openpyxla možete automatizirati izradu proračunskih tablica i radnih knjiga, generirati formule, popuniti stanice tim formulama i izvoditi mnoge druge operacije. Također možete promijeniti svojstva Excel objekata, poput stilova ćelija i uvjetnog oblikovanja. Svatko tko provodi značajno vrijeme zureći u proračunske tablice, ovdje će pronaći nešto korisno.

Peewee

Što Peewee radi:  maleni ORM (objektno-relacijski mapper) koji podržava SQLite, MySQL i PostgreSQL, s mnogim proširenjima.

Zašto koristiti Peewee:  Ne vole svi ORM; neki bi radije modeliranje sheme ostavili na strani baze podataka i završili s tim. No, programerima koji ne žele dodirivati ​​baze podataka, dobro konstruirani, neupadljivi ORM može biti božji dar. A za programere koji ne žele ORM tako cjelovit kao SQL Alchemy, Peewee je izvrsno rješenje.

Peewee modele lako je konstruirati, povezati i njima upravljati. Osim toga, ugrađene su mnoge uobičajene funkcije manipulacije upitima, poput paginacije. Više značajki dostupno je kao dodaci, uključujući proširenja za druge baze podataka, alate za testiranje i sustav migracije sheme - značajka koju bi čak i ORM mrzitelj mogao naučiti ljubav. Imajte na umu da grana Peewee 3.x (preporučeno izdanje) nije u potpunosti kompatibilna s prethodnim verzijama Peeweea.

Jastuk

Što jastuk radi:  Obrada slike bez boli.

Zašto koristiti jastuk:  Većina Pythonista-a koji su izvršili obradu slika trebali bi biti upoznati s PIL-om (Python Imaging Library), ali PIL je prepun nedostataka i ograničenja i rijetko se ažurira. Jastuk želi biti jednostavan za upotrebu i  kompatibilan s PIL-om uz minimalne promjene. Uključena su proširenja za razgovor s izvornim Windows funkcijama za obradu slika i Pythonov Tcl / Tk podržani Tkinter GUI paket. Jastuk je dostupan putem GitHub-a ili spremišta PyPI.

Poezija

Što Poezija radi:  Upravlja ovisnostima i pakiranjem za vaše Python projekte na visokoj razini.

Zašto koristiti poeziju:  u teoriji za pokretanje novog Python projekta ne morate ništa raditi, osim stvoriti prazan direktorij i napuniti ga .py datotekama. U praksi, posebno za ambiciozni projekt, morat ćete učiniti puno više - stvoriti README, postaviti neku strukturu mapa, prijaviti svoje ovisnosti itd. Sve ovo ručno raditi je glavobolja.

Poezija automatizira veći dio ovog postavljanja i održavanja. Pokrenite poetry new za stvaranje novog direktorija projekta i virtualnog okruženja, unaprijed napunjenog osnovnim asortimanom komponenata. Izjavite svoje ovisnosti koristeći Pythonov vlastiti format datoteke pyprojec.toml, a Poetry će upravljati njima umjesto vas. Postojeći proizvodi kojima se upravlja poezijom mogu se njihove ovisnosti automatski instalirati, osvježiti i izmijeniti iz naredbenog retka Poetry. Poezija se također bavi objavljivanjem u udaljenom spremištu (poput PyPI).

PyFilesystem

Što PyFilesystem radi:  Pythonic sučelje s bilo kojim datotečnim sustavom -  bilo kojim  datotečnim sustavom.

Zašto koristiti PyFilesystem:  Temeljna ideja koja stoji iza PyFilesystema ne može biti jednostavnija: Baš kao što Pythonovi fileobjekti apstrahiraju jednu datoteku, tako i PyFilesystemovi FSapstrahiraju cijeli datotečni sustav. To ne znači i samo datotečne sustave na disku. PyFilesystem također podržava FTP direktorije, datotečne sustave u memoriji, datotečne sustave za lokacije definirane OS-om (poput korisničkog direktorija), pa čak i kombinacije gore nanesenih jedna na drugu.

Osim što olakšava pisanje međuplatformnog koda koji manipulira datotekama, PyFilesystem uklanja potrebu za kaldrmiranjem skripti iz različitih dijelova standardne knjižnice, uglavnom  os i  io. Također pruža uslužne programe koje bi inače trebalo stvoriti od nule, poput alata za ispis konzolastih prikaza stabla datotečnog sustava.

Pigame

Što Pygame radi:  Stvorite video igre ili front-ende s kvalitetom igre u Pythonu.