Programmering

24 Python-biblioteker for alle Python-utviklere

Vil du ha en god grunn til den suksessfulle Python-programmeringsspråket? Se ikke lenger enn den enorme samlingen av biblioteker som er tilgjengelige for Python, både innfødte og tredjepartsbiblioteker. Med så mange Python-biblioteker der ute, er det imidlertid ingen overraskelse at noen ikke får all den oppmerksomheten de fortjener. I tillegg vet ikke programmerere som jobber utelukkende innen ett domene, om godbitene som er tilgjengelig for andre typer arbeid.

Her er 24 Python-biblioteker du kanskje har oversett, men som absolutt er verdt oppmerksomheten din. Disse perlene har en rekke nytteverdier, forenkler alt fra filsystemtilgang, databaseprogrammering og arbeid med skytjenester til å bygge lette webapper, lage GUIer og jobbe med bilder, ebøker og Word-filer - og mye mer i tillegg. Noen er velkjente, andre mindre kjente, men alle disse Python-bibliotekene fortjener en plass i verktøykassen din.

Apache Libcloud

Hva Libcloud gjør: Få tilgang til flere skyleverandører gjennom en enkelt, konsistent, samlet API.

Hvorfor bruke Libcloud: Hvis beskrivelsen ovenfor av Apache Libcloud ikke får deg til å klappe i hendene av glede, har du ikke prøvd å jobbe med flere skyer. Skyleverandører elsker alle å gjøre ting på sin måte, noe som gjør en enhetlig mekanisme for å håndtere dusinvis av leverandører til en enorm tidsbesparelse og hodepine-lindring. API-er er tilgjengelige for beregning, lagring, belastningsbalansering og DNS, med støtte for Python 2.x og Python 3.x samt PyPy, den ytelsesfremmende JIT-kompilatoren for Python.

Pil

Hva Arrow gjør: Renere håndtering av datoer og klokkeslett i Python.

Hvorfor bruke Arrow: Å takle tidssoner, datoomregninger, datoformater og resten er allerede en og en halv hodepine. Kast inn Pythons standardbibliotek for dato- / klokkeslettarbeid, og du får to og en halv hodepine.

Pil gir fire store fordeler. Den ene, Arrow er en drop-in erstatning for Pythons datetime-modul, noe som betyr at vanlig funksjon kaller som .nå() og .utcnow () jobbe som forventet. To, Arrow gir metoder for vanlige behov som å skifte og konvertere tidssoner. Tre, Arrow gir "humanisert" informasjon om dato / tid - som å kunne si at noe skjedde "for en time siden" eller vil skje "om to timer" uten mye anstrengelse. Fire, Arrow kan lokalisere dato / klokkeslettinformasjon uten å svette.

Se

Hva Se gjør: Robust støtte for feilsøking i utskriftsstil i Python.

Hvorfor bruke Se: Det er en enkel måte å feilsøke i Python, eller nesten hvilket som helst programmeringsspråk for den saks skyld: Sett inn linjen skrive ut uttalelser. Men mens utbedring av feilsøking er en no-brainer i små programmer, er det ikke så lett å få nyttige resultater innen store, viltvoksende prosjekter med flere moduler.

Se gir et verktøysett for kontekstuell feilsøking via utskriftsuttalelser. Det lar deg pålegge utdataene et jevnt utseende, merke resultatene slik at de kan sorteres via søk eller filtre, og gi sammenhenger på tvers av moduler, slik at funksjoner som har sin opprinnelse i en modul kan feilsøkes riktig i en annen. Se håndterer mange vanlige Python-spesifikke scenarier, som å skrive ut et objekts interne ordbok, avdekke nestede attributter og lagre og gjenbruke resultater for sammenligning på andre punkter under feilsøkingsprosessen.

Svart

Hva Black gjør: Formaterer Python-kode i henhold til et strengt og nesten uforanderlig sett med regler.

Hvorfor bruke svart: Python-kodeformaterere, som YAPF, har en tendens til å ha mange konfigurerbare alternativer - linjelengde, linjedeling, håndtering av etterfølgende kommaer og så videre. Svart bruker et konsekvent sett med standardinnstillinger for de reglene som ikke kan endres. Den resulterende formaterte koden er så konsistent som mulig på tvers av kodebaser og mellom brukere, med færrest mulig forskjeller mellom redigerte filer.

Svart er vant til å bli vant til, spesielt hvis du er fin med vertikal hvitt mellomrom, utsagn med dype nestinger (f.eks. Lister i lister) og andre formateringsalternativer. Men på sikt frigjør det deg fra å måtte tenke på formatering, slik at du kan konsentrere deg om koden din.

Flaske

Hva flasken gjør: Lette og raske nettapper.

Hvorfor bruke flaske: Når du vil kaste sammen en rask, RESTful API eller bruke bare bein i et nettrammeverk for å bygge en app, gir den dyktige, men lille flasken deg ikke mer enn du trenger. Routing, maler, tilgang til forespørsels- og responsdata, støtte for flere servertyper fra vanlig gammel CGI og oppover, og støtte for mer avanserte funksjoner som WebSockets - alt er her. Mengden arbeid som trengs for å komme i gang er også minimal, og Bottles design er elegant utvidbar når det er behov for mer avanserte funksjoner. 

Klikk

Hva Click gjør: Lar deg raskt bygge kommandolinjegrensesnitt for Python-apper.

Hvorfor bruke Click: GUI-er er praktiske, men CLI-er er der den virkelige kraften er. Å bygge en robust CLI er imidlertid neppe enkelt, og standardverktøysettet for å samle og bruke kommandolinjealternativer i Python er primitivt.

Klikk bryter disse bitene i et høyt nivå, CLI-konstruksjon API. Hvis du bare vil lage noen få grunnleggende kommandoer, kan du gjøre det med et par kodelinjer. Hvis du vil ha mer avansert oppførsel, for eksempel å be om mer informasjon om en parameter, eller utlede verdier fra miljøvariabler, har Click deg dekket. Click støtter også terminalfarger viacolorama bibliotek, og kan utvides med tredjeparts plugin-moduler.

EbookLib

Hva EbookLib gjør: Les og skriv .epub-filer.

Hvorfor bruke EbookLib:Å lage e-bøker krever vanligvis å slå et kommandolinjeverktøy eller et annet. EbookLib tilbyr administrasjonsverktøy og API-er som forenkler prosessen. Det fungerer med EPUB 2- og EPUB 3-filer, med Kindle-støtte under utvikling.

Gi bildene og teksten (sistnevnte i HTML-format), og EbookLib kan samle disse brikkene i en e-bok komplett med kapitler, nestet innholdsfortegnelse, bilder, HTML-markering og så videre. Data om omslag, ryggrad og stilark støttes også. Et plugin-system tillater tredjeparter å utvide bibliotekets atferd.

Hvis du ikke trenger alt EbookLib har å tilby, kan du prøve Mkepub. Mkepub pakker grunnleggende funksjonalitet for montering av e-bøker i et bibliotek som bare er noen få kilobyte stort. En mindre ulempe ved Mkepub er at det krever Jinja2, som igjen krever MarkupSafe-biblioteket.

Tøff

Hva Gooey gjør: Gi et konsollbasert Python-program et plattforminnfødt GUI.

Hvorfor bruke Gooey: Å presentere brukere, spesielt rang-og-fil-brukere, med et kommandolinjegrensesnitt er blant de beste måtene å motvirke bruken av applikasjonen din. Få bortsett fra hardcore-nördene, som å finne ut hvilke alternativer å gi inn og i hvilken rekkefølge. Gooey tar argumenter som forventes av argparse-biblioteket og presenterer dem for brukere som et GUI-skjema, ved hjelp av WxPython-biblioteket. Alle alternativene er merket og vist med passende kontroller (for eksempel en rullegardin for et multi-alternativ-argument). Svært lite tilleggskoding - en inkludering og en dekoratør - er nødvendig for å få det til å fungere, forutsatt at du allerede bruker argparse.

Påkalle

Hva Invoke gjør: Pythonic ekstern kjøring - dvs. utføre adminoppgaver ved hjelp av et Python-bibliotek.

Hvorfor bruke Invoke: Å bruke Python som erstatning for vanlige shell-skriptoppgaver gir en verden av mening. Invoke gir et API på høyt nivå for å kjøre skallkommandoer og administrere kommandolinjeoppgaver som om de var Python-funksjoner, slik at du kan legge disse oppgavene inn i din egen kode eller elegant bygge rundt dem. Bare vær forsiktig så du ikke tillater upålitelig inngang som den er til noen skallkommandoer.

Nuitka

Hva Nuitka gjør:Kompiler Python til selvstendige C-kjørbare filer.

Hvorfor bruke Nuitka: I likhet med Cython samler Nuitka Python til C. Imidlertid, mens Cython krever sin egen tilpassede syntaks for best resultat, og fokuserer hovedsakelig på matte- og statistikkapplikasjoner, jobber Nuitka med ethvert Python-program som det er, kompilerer det til C og produserer et enkelt -fil kjørbar, bruker optimaliseringer der det kan underveis. Nuitka er fortsatt i sine tidlige stadier, og mange av de planlagte optimaliseringene kommer fremdeles. Likevel er det en praktisk måte å gjøre et Python-skript om til en rask kommandolinjeapp.

Numba

Hva Numba gjør:Selektivt øke hastigheten på matteintensive funksjoner.

Hvorfor bruke Numba:Python-verdenen inkluderer en hel subkultur av pakker for å akselerere matteoperasjoner. For eksempel fungerer NumPy ved å pakke inn høyhastighets C-biblioteker i et Python-grensesnitt, og Cython kompilerer Python til C med valgfri inntasting for akselerert ytelse. Men Numba er lett det mest praktiske, da det gjør at Python-funksjoner selektivt kan akselereres med ingenting mer enn en dekoratør. For ytterligere hastighetsforbedringer kan du bruke vanlige Python-idiomer for å parallellisere arbeidsmengder, eller bruke SIMD- eller GPU-instruksjoner.

Merk at du kan bruke NumPy med Numba. Tross alt har NumPy mange out-of-the-box algoritmer som ikke trenger å implementeres fra bunnen av. Men for små "kjernealgoritmer" vil Numba i mange tilfeller overgå NumPy mange ganger.

Openpyxl

Hva Openpyxl gjør: Leser, skriver og manipulerer Excel-filer.

Hvorfor bruke OpenPyxl: Be noen om å nevne tre verktøy som crunchers bruker i sitt arbeid, sannsynligvis er det at du får Python, R og Excel, ikke nødvendigvis i den rekkefølgen. Excel har (ennå) ikke native Python-tilkobling, men tredjepartspakker har bro over gapet på forskjellige måter.

Openpyxl fungerer ved å endre Excelfiler heller enn ved å manipulere Excel direkte. Med Openpyxl kan du automatisere opprettelsen av regneark og arbeidsbøker, generere formler, fylle ut celler med disse formlene og utføre mange andre operasjoner. Du kan også endre egenskapene til Excel-objekter, for eksempel cellestiler og betinget formatering. Alle som bruker betydelig tid på å stirre på regneark, vil finne noe nyttig her.

Småputt

Hva Peewee gjør: En liten ORM (objekt-relasjonell kartlegger) som støtter SQLite, MySQL og PostgreSQL, med mange utvidelser.

Hvorfor bruke Peewee: Ikke alle elsker en ORM; noen vil heller la skjemamodellering være på databasesiden og være ferdig med det. Men for utviklere som ikke vil berøre databaser, kan en velkonstruert, lite påtrengende ORM være en gave. Og for utviklere som ikke vil ha en ORM så fullverdig som SQL Alchemy, passer Peewee perfekt.

Peewee-modeller er enkle å konstruere, koble til og manipulere. I tillegg er mange vanlige spørringsmanipuleringsfunksjoner, for eksempel paginering, innebygd rett i. Flere funksjoner er tilgjengelige som tillegg, inkludert utvidelser for andre databaser, testverktøy og et skjemaoverføringssystem - en funksjon til og med en ORM-hater kan lære å kjærlighet. Merk at Peewee 3.x-grenen (den anbefalte utgaven) ikke er helt bakoverkompatibel med tidligere versjoner av Peewee.

Pute

Hva Pute gjør: Bildebehandling uten smerter.

Hvorfor bruke pute: De fleste Pythonistas som har utført bildebehandling, burde være kjent med PIL (Python Imaging Library), men PIL er full av mangler og begrensninger, og den oppdateres sjelden. Pillow har som mål å være både enklere å bruke og kodekompatibel med PIL via minimale endringer. Utvidelser er inkludert for å snakke med både native Windows-bildefunksjoner og Pythons Tcl / Tk-støttede Tkinter GUI-pakke. Pillow er tilgjengelig via GitHub eller PyPI-depotet.

Poesi

Hva poesi gjør: Administrerer avhengigheter og emballasje for dine Python-prosjekter på et høyt nivå.

Hvorfor bruke poesi: I teorien trenger du ikke gjøre noe for å starte et nytt Python-prosjekt bortsett fra å opprette en tom katalog og fylle den med .py-filer. I praksis, spesielt for et ambisiøst prosjekt, vil du trenge å gjøre mye mer - lage en README, sette opp en mappestruktur, erklære dine avhengigheter og så videre. Å gjøre alt dette for hånd er hodepine.

Poesi automatiserer mye av dette oppsettet og vedlikeholdet. Løpe poesi nytt for å lage en ny prosjektkatalog og virtuelt miljø, forhåndsutfylt med et grunnleggende utvalg av komponenter. Erklær dine avhengigheter ved hjelp av Pythons eget pyprojec.toml-filformat, så vil Poetry administrere dem for deg. Eksisterende poesistyrte produkter kan få sine avhengigheter automatisk installert, oppdatert og endret fra Poetrys kommandolinje. Poesi håndterer også publisering til et eksternt lager (som PyPI).

PyFilesystem

Hva PyFilesystem gjør: Et pythonisk grensesnitt til ethvert filsystem -noen filsystem.

Hvorfor bruke PyFilesystem:Den grunnleggende ideen bak PyFilesystem kunne ikke være enklere: Akkurat som Pythons fil objekter abstrakte en enkelt fil, PyFilesystem’s FS objekter abstrakte et helt filsystem. Dette betyr ikke bare filsystemer på disken. PyFilesystem støtter også FTP-kataloger, filsystemer i minnet, filsystemer for steder definert av operativsystemet (for eksempel brukerkatalogen), og til og med kombinasjoner av ovennevnte overlappet på hverandre.

I tillegg til å gjøre det lettere å skrive plattformkode som manipulerer filer, fjerner PyFilesystem behovet for å koble sammen skript fra forskjellige deler av standardbiblioteket, hovedsakeligos ogio. Det gir også verktøy som man ellers kanskje trenger å lage fra bunnen av, som et verktøy for å skrive ut konsollvennlige trevisninger av et filsystem.

Pygame

Hva Pygame gjør: Lag videospill, eller front-ender av spillkvalitet, i Python.