Programmering

24 Python-biblioteker til alle Python-udviklere

Vil du have en god grund til den utrolige succes med Python-programmeringssproget? Se ikke længere end den massive samling af biblioteker, der er tilgængelige for Python, både indfødte og tredjepartsbiblioteker. Med så mange Python-biblioteker derude er det dog ikke overraskende, at nogle ikke får al den opmærksomhed, de fortjener. Derudover ved programmerere, der udelukkende arbejder inden for et domæne, ikke altid om de godbidder, de har til rådighed for andre former for arbejde.

Her er 24 Python-biblioteker, som du måske har overset, men som absolut er værd at være opmærksom på. Disse ædelstene styrer nytteområdet, forenkler alt fra filsystemadgang, databaseprogrammering og arbejde med skytjenester til opbygning af lette webapps, oprettelse af GUI'er og arbejde med billeder, e-bøger og Word-filer - og meget mere. Nogle er velkendte, andre mindre kendte, men alle disse Python-biblioteker fortjener et sted i din værktøjskasse.

Apache Libcloud

Hvad Libcloud gør: Få adgang til flere cloududbydere via en enkelt, ensartet, samlet API.

Hvorfor bruge Libcloud: Hvis ovenstående beskrivelse af Apache Libcloud ikke får dig til at klappe i hænderne af glæde, har du ikke prøvet at arbejde med flere skyer. Cloud-udbydere elsker alle at gøre tingene på deres måde, hvilket gør en samlet mekanisme til at håndtere snesevis af udbydere til en enorm tidsbesparelse og hovedpine-sutter. API'er er tilgængelige til beregning, opbevaring, belastningsbalancering og DNS med understøttelse af Python 2.x og Python 3.x samt PyPy, den præstationsfremmende JIT-compiler til Python.

Pil

Hvad gør Arrow: Renere håndtering af datoer og tidspunkter i Python.

Hvorfor bruge Arrow: At beskæftige sig med tidszoner, datakonverteringer, datoformater og alt det andet er allerede en og en halv hovedpine. Kast Pythons standardbibliotek til dato- / tidsarbejde, og du får to og en halv hovedpine.

Pil giver fire store fordele. Den ene, Arrow er en drop-in erstatning for Pythons datetime-modul, hvilket betyder, at fælles funktion kalder som .nu() og .utcnow () arbejde som forventet. To, Arrow giver metoder til fælles behov som at flytte og konvertere tidszoner. Tre, Pil giver “humaniserede” oplysninger om dato / tid - såsom at være i stand til at sige noget skete ”for en time siden” eller vil ske ”om to timer” uden megen anstrengelse. Fire, pil kan lokalisere dato / klokkeslæt uden at svede.

Se

Hvad ser det gør: Robust understøttelse af fejlretning i print-stil i Python.

Hvorfor bruge Se: Der er en enkel måde at debugge i Python eller næsten ethvert programmeringssprog for den sags skyld: Indsæt in-line Print udsagn. Men mens udskrivning af debugging ikke er en god idé i små programmer, er det ikke så let at få nyttige resultater inden for store, sprede multimodulprojekter.

Se giver et værktøjssæt til kontekstuel fejlretning via udskriftserklæringer. Det giver dig mulighed for at pålægge output et ensartet udseende, tagge resultaterne, så de kan sorteres via søgninger eller filtre, og give sammenhænge på tværs af moduler, så funktioner, der stammer fra et modul, kan fejles korrekt i et andet. Se håndterer mange almindelige Python-specifikke scenarier som udskrivning af et objekts interne ordbog, afsløring af indlejrede attributter og lagring og genbrug af resultater til sammenligning på andre punkter under fejlfindingsprocessen.

Sort

Hvad sort gør: Formaterer Python-kode i henhold til et strengt og næsten uforanderligt sæt regler.

Hvorfor bruge sort: Python-kodeformater, som YAPF, har tendens til at have mange konfigurerbare muligheder - linjelængde, linjedeling, håndtering af efterfølgende kommaer og så videre. Sort anvender et konsekvent sæt standardindstillinger for de regler, der ikke kan ændres. Den resulterende formaterede kode er så konsistent som muligt på tværs af kodebaser og mellem brugere med færrest mulige forskelle mellem redigerede filer.

Sort tager noget at vænne sig til, især hvis du er pirret over lodret hvidt mellemrum, udsagn med dybe nestinger (f.eks. Lister inden for lister) og andre formateringsmuligheder. Men i det lange løb frigør det dig fra at skulle tænke på formatering, så du kan koncentrere dig om din kode.

Flaske

Hvad flaske gør: Let og hurtig webapps.

Hvorfor bruge flaske: Når du vil kaste en hurtig RESTful API sammen eller bruge de bare knogler i en webramme til at opbygge en app, giver den alligevel lille Flaske dig ikke mere end du har brug for. Routing, skabeloner, adgang til anmodnings- og svardata, support til flere servertyper fra almindelig gammel CGI og op og support til mere avancerede funktioner som WebSockets - det hele er her. Mængden af ​​arbejde, der er nødvendigt for at komme i gang, er ligeledes minimal, og Bottles design kan elegant udvides, når der er behov for mere avancerede funktioner. 

Klik på

Hvad Click gør: Giver dig mulighed for hurtigt at opbygge kommandolinjegrænseflader til Python-apps.

Hvorfor bruge Click: GUI'er er praktiske, men CLI'er er hvor den virkelige magt er. At bygge en robust CLI er dog næppe let, og standardværktøjssættet til indsamling og brug af kommandolinjemuligheder i Python er primitivt.

Klik indpakker disse bits og stykker i et højt niveau, CLI-konstruktion API. Hvis du bare vil oprette et par grundlæggende kommandoer, kan du gøre det med et par linjer kode. Hvis du vil have mere avanceret adfærd, som f.eks. At bede separat om mere information om en parameter eller udlede værdier fra miljøvariabler, har Click dig dækket. Click understøtter også terminalfarver viacolorama bibliotek og kan udvides med plug-ins fra tredjepart.

EbookLib

Hvad EbookLib gør: Læs og skriv .epub-filer.

Hvorfor bruge EbookLib:Oprettelse af e-bøger kræver typisk krængning af et eller andet kommandolinjeværktøj. EbookLib leverer styringsværktøjer og API'er, der forenkler processen. Det fungerer med EPUB 2 og EPUB 3 filer med Kindle support under udvikling.

Giv billederne og teksten (sidstnævnte i HTML-format), og EbookLib kan samle disse stykker i en e-bog komplet med kapitler, indlejret indholdsfortegnelse, billeder, HTML-markering osv. Data om dækning, ryg og stil understøttes også alle. Et plug-in-system giver tredjeparter mulighed for at udvide bibliotekets adfærd.

Hvis du ikke har brug for alt, hvad EbookLib har at tilbyde, så prøv Mkepub. Mkepub pakker grundlæggende ebook-samlingsfunktionalitet i et bibliotek, der kun er få kilobyte i størrelse. En mindre ulempe ved Mkepub er, at det kræver Jinja2, hvilket igen kræver MarkupSafe-biblioteket.

Fedtet

Hvad klæbrig gør: Giv et konsolbaseret Python-program en platform-native GUI.

Hvorfor bruge Gooey: At præsentere brugere, især rank-and-file-brugere, med en kommandolinjegrænseflade er blandt de bedste måder at modvirke brugen af ​​din applikation. Få bortset fra den hardcore nørd som at finde ud af, hvilke muligheder der skal passeres i og i hvilken rækkefølge. Gooey tager argumenter, der forventes af argparse-biblioteket, og præsenterer dem for brugere som en GUI-form ved hjælp af WxPython-biblioteket. Alle indstillinger mærkes og vises med passende kontrolelementer (f.eks. En rullemenu til et multi-option-argument). Meget lidt yderligere kodning - en enkelt inkludering og en enkelt dekoratør - er nødvendig for at få det til at fungere, forudsat at du allerede bruger argparse.

Påkald

Hvad Invoke gør: Pythonic fjernudførelse - dvs. udføre adminopgaver ved hjælp af et Python-bibliotek.

Hvorfor bruge Invoke: Brug af Python som erstatning for almindelige shell-scriptingopgaver giver en verden af ​​mening. Invoke leverer et API på højt niveau til at køre shell-kommandoer og styre kommandolinieopgaver, som om de var Python-funktioner, så du kan integrere disse opgaver i din egen kode eller elegant opbygge dem. Bare pas på ikke at tillade ikke-betroet input at blive sendt som det er til eventuelle shell-kommandoer.

Nuitka

Hvad Nuitka gør:Kompilér Python til selvstændige C-eksekverbare filer.

Hvorfor bruge Nuitka: Ligesom Cython kompilerer Nuitka Python til C. Men mens Cython kræver sin egen brugerdefinerede syntaks for de bedste resultater og fokuserer hovedsageligt på matematik- og statistikapplikationer, arbejder Nuitka med ethvert Python-program som det er, kompilerer det til C og producerer en enkelt -fil eksekverbar, anvender optimeringer, hvor det kan undervejs. Nuitka er stadig i sine tidlige faser, og mange af de planlagte optimeringer skal stadig komme. Ikke desto mindre er det en bekvem måde at gøre et Python-script til en hurtig kommandolinjeapp.

Numba

Hvad Numba gør:Selektivt fremskynde matematikintensive funktioner.

Hvorfor bruge Numba:Python-verdenen inkluderer en hel subkultur af pakker til hurtigere matematikoperationer. For eksempel fungerer NumPy ved at indpakke C-biblioteker med høj hastighed i en Python-grænseflade, og Cython kompilerer Python til C med valgfri typing for hurtigere ydelse. Men Numba er let det mest praktiske, da det gør det muligt for Python-funktioner at blive selektivt accelereret med intet mere end en dekoratør. For yderligere hastighedsforøgelser kan du bruge almindelige Python-idiomer til at parallelisere arbejdsbelastninger eller bruge SIMD- eller GPU-instruktioner.

Bemærk, at du kan bruge NumPy med Numba. Når alt kommer til alt har NumPy mange out-of-the-box algoritmer, der ikke behøver at blive implementeret fra bunden. Men for små "kernel" -algoritmer vil Numba i mange tilfælde overgå NumPy mange gange.

Openpyxl

Hvad Openpyxl gør: Læser, skriver og manipulerer Excel-filer.

Hvorfor bruge OpenPyxl: Bed nogen om at navngive tre værktøjer, som nummer crunchers bruger i deres arbejde, sandsynligvis er det, at du får Python, R og Excel, ikke nødvendigvis i den rækkefølge. Excel har (endnu) ikke indfødte Python-forbindelser, men tredjepartspakker har broet hullet på forskellige måder.

Openpyxl fungerer ved at ændre Excelfiler snarere end ved at manipulere Excel direkte. Med Openpyxl kan du automatisere oprettelsen af ​​regneark og projektmapper, generere formler, udfylde celler med disse formler og udføre mange andre operationer. Du kan også ændre egenskaberne for Excel-objekter, såsom celleformater og betinget formatering. Enhver, der bruger betydelig tid på at stirre på regneark, finder noget nyttigt her.

Peewee

Hvad Peewee gør: En lille ORM (objektrelationskortlægger), der understøtter SQLite, MySQL og PostgreSQL med mange udvidelser.

Hvorfor bruge Peewee: Ikke alle elsker en ORM; nogle vil hellere efterlade skemamodellering på databasesiden og gøres med det. Men for udviklere, der ikke ønsker at røre ved databaser, kan en velkonstrueret, diskret ORM være en gave. Og for udviklere, der ikke ønsker en ORM så fuldt ud som SQL Alchemy, er Peewee en god pasform.

Peewee-modeller er nemme at konstruere, tilslutte og manipulere. Derudover er mange almindelige forespørgselsmanipulationsfunktioner, såsom paginering, indbygget lige i. Flere funktioner er tilgængelige som tilføjelsesprogrammer, herunder udvidelser til andre databaser, testværktøjer og et skema-migrationssystem - en funktion, som en ORM-hater kunne lære at elsker. Bemærk, at Peewee 3.x-grenen (den anbefalede udgave) ikke er helt bagudkompatibel med tidligere versioner af Peewee.

Pude

Hvad Pude gør: Billedbehandling uden smerter.

Hvorfor bruge pude: De fleste Pythonistas, der har udført billedbehandling, burde være fortrolige med PIL (Python Imaging Library), men PIL er fyldt med mangler og begrænsninger, og den opdateres sjældent. Pillow sigter mod at være begge lettere at bruge og kode-kompatibel med PIL via minimale ændringer. Udvidelser er inkluderet til at tale med både native Windows-billedfunktioner og Pythons Tcl / Tk-backede Tkinter GUI-pakke. Pillow er tilgængelig via GitHub eller PyPI-arkivet.

Poesi

Hvad poesi gør: Administrerer afhængigheder og emballering til dine Python-projekter på et højt niveau.

Hvorfor bruge poesi: I teorien behøver du ikke gøre noget for at starte et nyt Python-projekt undtagen at oprette en tom mappe og udfylde den med .py-filer. I praksis, især for et ambitiøst projekt, bliver du nødt til at gøre meget mere - oprette en README, oprette en mappestruktur, erklære dine afhængigheder osv. At gøre alt dette i hånden er hovedpine.

Poesi automatiserer meget af denne opsætning og vedligeholdelse. Løb poesi nyt at oprette et nyt projektmappe og virtuelt miljø, præudfyldt med et grundlæggende udvalg af komponenter. Erklær dine afhængigheder ved hjælp af Pythons eget pyprojec.toml-filformat, og Poetry administrerer dem for dig. Eksisterende poesistyrede produkter kan få deres afhængigheder automatisk installeret, opdateret og ændret fra Poetrys kommandolinje. Poesi håndterer også udgivelse til et eksternt lager (som PyPI).

PyFilesystem

Hvad PyFilesystem gør: En pythonisk grænseflade til ethvert filsystem -nogen filsystem.

Hvorfor bruge PyFilesystem:Den grundlæggende idé bag PyFilesystem kunne ikke være enklere: Ligesom Pythons fil objekter abstrakt en enkelt fil, PyFilesystem's FS objekter abstrakt et helt filsystem. Dette betyder heller ikke kun filsystemer på disken. PyFilesystem understøtter også FTP-mapper, in-memory-filsystemer, filsystemer til placeringer defineret af operativsystemet (såsom brugerkataloget) og endda kombinationer af ovenstående overlejret på hinanden.

Ud over at gøre det lettere at skrive krydsplatformkode, der manipulerer filer, fjerner PyFilesystem behovet for at samle scripts fra forskellige dele af standardbiblioteket, hovedsageligtos ogio. Det giver også værktøjer, som man ellers muligvis har brug for at oprette fra bunden, som et værktøj til udskrivning af konsolvenlige trævisninger af et filsystem.

Pygame

Hvad Pygame gør: Opret videospil eller front-ender af spilkvalitet i Python.

$config[zx-auto] not found$config[zx-overlay] not found