24 Python-bibliotek för alla Python-utvecklare

Vill du ha en bra anledning till den otroliga framgången med Python-programmeringsspråket? Leta inte längre än den enorma samlingen av bibliotek som finns tillgängliga för Python, både infödda och tredjepartsbibliotek. Med så många Python-bibliotek där ute är det dock ingen överraskning att vissa inte får all uppmärksamhet de förtjänar. Dessutom vet programmerare som arbetar uteslutande inom en domän inte alltid om de godsaker som finns tillgängliga för andra typer av arbete.

Här är 24 Python-bibliotek som du kanske har förbisett men är definitivt värda din uppmärksamhet. Dessa ädelstenar är användbarheten, vilket förenklar allt från filsystemåtkomst, databasprogrammering och arbete med molntjänster för att bygga lätta webbappar, skapa GUI och arbeta med bilder, e-böcker och Word-filer - och mycket mer förutom. Vissa är välkända, andra mindre kända, men alla dessa Python-bibliotek förtjänar en plats i din verktygslåda.

Apache Libcloud

Vad Libcloud gör: Få åtkomst till flera molnleverantörer via ett enda, enhetligt, enhetligt API.

Varför använda Libcloud: Om beskrivningen ovan av Apache Libcloud inte får dig att klappa händerna av glädje, har du inte försökt arbeta med flera moln. Molnleverantörer älskar alla att göra saker på sitt sätt, vilket gör en enhetlig mekanism för att hantera dussintals leverantörer till en enorm tidsbesparing och huvudvärk. API: er finns tillgängliga för beräkning, lagring, belastningsbalansering och DNS, med stöd för Python 2.x och Python 3.x samt PyPy, den prestationshöjande JIT-kompilatorn för Python.

Pil

What Arrow gör: Renare hantering av datum och tider i Python.

Varför använda Arrow: Att hantera tidszoner, datumkonverteringar, datumformat och resten är redan en och en halv huvudvärk. Kasta in Pythons standardbibliotek för datum- / tidsarbete och du får två och en halv huvudvärk.

Pil ger fyra stora fördelar. En, Arrow är en drop-in-ersättning för Pythons datetime-modul, vilket innebär att gemensam funktion ringer som .now()och .utcnow()fungerar som förväntat. Två, Arrow tillhandahåller metoder för vanliga behov som att flytta och konvertera tidszoner. Tre, Arrow tillhandahåller "humaniserad" information om datum / tid - som att kunna säga att något hände "för en timme sedan" eller kommer att hända "om två timmar" utan mycket ansträngning. Fyra, Arrow kan lokalisera datum- / tidsinformation utan att svettas.

Skåda

Vad se gör:  Robust stöd för felsökning i utskriftsstil i Python.

Varför använda Se:  Det finns ett enkelt sätt att felsöka i Python, eller nästan vilket programmeringsspråk som helst: Infoga inline- printuttalanden. Men även om utskriftsfelsökning inte är bra i små program är det inte så lätt att få användbara resultat inom stora, vidsträckta multimodulprojekt.

Se tillhandahåller en verktygslåda för kontextuell felsökning via utskriftsuttalanden. Det låter dig införa ett enhetligt utseende på utdata, märka resultaten så att de kan sorteras via sökningar eller filter och tillhandahålla sammanhang över moduler så att funktioner som har sitt ursprung i en modul kan felsökas ordentligt i en annan. Se hanterar många vanliga Pythonspecifika scenarier som att skriva ut ett objekts interna ordbok, avslöja kapslade attribut och lagra och återanvända resultat för jämförelse vid andra punkter under felsökningen.

Svart

Vad svart gör: Formaterar Python-kod enligt en strikt och nästan helt oföränderlig uppsättning regler.

Varför använda svart:  Python-kodformatörer, som YAPF, tenderar att ha många konfigurerbara alternativ - linjelängd, linjesplitningsalternativ, hantering av efterföljande kommatecken och så vidare. Black tillämpar en konsekvent uppsättning standardvärden för de regler som inte kan ändras. Den resulterande formaterade koden är så konsekvent som möjligt över kodbaser och mellan användare, med minst möjliga skillnader mellan redigerade filer.

Svart tar lite tid att vänja sig, speciellt om du är snygg över vertikalt utrymme, uttalanden med djupa häckar (t.ex. listor i listor) och andra formateringsalternativ. Men på lång sikt frigör det dig från att behöva tänka på formatering, så att du kan koncentrera dig på din kod.

Flaska

What Bottle gör: Lätta och snabba webbappar.

Varför använda flaska: När du vill kasta ihop ett snabbt RESTful API eller använda de bara benen i ett webbramverk för att bygga en app, kan kapacitet men ändå liten flaska inte mer än du behöver. Routing, mallar, åtkomst till begäran och svarsdata, stöd för flera servertyper från vanligt gammalt CGI och uppåt och stöd för mer avancerade funktioner som WebSockets - allt finns här. Mängden arbete som behövs för att komma igång är också minimal och Bottles design är elegant utdragbar när mer avancerade funktioner behövs. 

Klick

What Click gör:  Låter dig snabbt bygga kommandoradsgränssnitt för Python-appar.

Varför använda Click:  GUI är praktiska, men CLI är där den verkliga kraften är. Att bygga en robust CLI är dock knappast lätt, och standardverktygssatsen för att samla in och använda kommandoradsalternativ i Python är primitiv.

Klicka omsluter dessa bitar och bitar i ett högnivå-CLI-konstruktions-API. Om du bara vill skapa några grundläggande kommandon kan du göra det med ett par kodrader. Om du vill ha mer avancerat beteende, som att be separat om mer information om en parameter eller härleda värden från miljövariabler, klickar du på. Click stöder också terminalfärger via  colorama biblioteket och kan utökas med plug-ins från tredje part.

EbookLib

Vad EbookLib gör:  Läs och skriv .epub-filer.

Varför använda EbookLib: För att  skapa e-böcker krävs vanligtvis en eller annan kommandoradsverktyg. EbookLib tillhandahåller hanteringsverktyg och API: er som förenklar processen. Det fungerar med EPUB 2- och EPUB 3-filer, med Kindle-stöd under utveckling.

Ange bilderna och texten (den senare i HTML-format), och EbookLib kan montera dessa bitar i en e-bok komplett med kapitel, kapslad innehållsförteckning, bilder, HTML-markering och så vidare. Omslags-, ryggrads- och stilarkdata stöds också. Ett plug-in-system gör det möjligt för tredje parter att utöka bibliotekets beteende.

Om du inte behöver allt som EbookLib har att erbjuda, prova Mkepub. Mkepub packar grundläggande e-bokmonteringsfunktionalitet i ett bibliotek som bara är några kilobyte stort. En mindre nackdel med Mkepub är att det kräver Jinja2, vilket i sin tur kräver MarkupSafe-biblioteket.

Tuffa

Vad Gooey gör:  Ge ett konsolbaserat Python-program ett plattformsintegrerat GUI.

Varför använda Gooey:  Att presentera användare, särskilt rankningsanvändare, med ett kommandoradsgränssnitt är bland de bästa sätten att avskräcka användningen av din applikation. Få bortsett från den hardcore nörd som att räkna ut vilka alternativ att passera i och i vilken ordning. Gooey tar argument som förväntas av argparse-biblioteket och presenterar dem för användare som ett GUI-formulär, via WxPython-biblioteket. Alla alternativ är märkta och visas med lämpliga kontroller (till exempel en rullgardinsmeny för ett fleralternativargument). Mycket lite ytterligare kodning - en enda inkludering och en enda dekoratör - behövs för att få det att fungera, förutsatt att du redan använder argparse.

Åberopa

Vad Invoke gör: Pythonic fjärrkörning - dvs. utför adminuppgifter med hjälp av ett Python-bibliotek.

Varför använda Invoke: Att använda Python som en ersättning för vanliga shell-skriptuppgifter gör en värld av mening. Invoke tillhandahåller ett API på hög nivå för att köra skalkommandon och hantera kommandoradsuppgifter som om de vore Python-funktioner, så att du kan bädda in dessa uppgifter i din egen kod eller elegant bygga runt dem. Var bara försiktig så att du inte tillåter otillförlitlig inmatning som den är till alla skalkommandon.

Nuitka

Vad Nuitka gör:  Kompilera Python till fristående C-körbara filer.

Varför använda Nuitka:  Precis som Cython, sammanställer Nuitka Python till C. Men medan Cython kräver sin egen anpassade syntax för bästa resultat och fokuserar främst på matematik- och statistikapplikationer, arbetar Nuitka med vilket Python-program som helst, kompilerar det till C, och producerar en körbar fil med en fil, som använder optimeringar där den kan på vägen. Nuitka är fortfarande i ett tidigt skede, och många av de planerade optimeringarna är fortfarande kvar. Ändå är det ett bekvämt sätt att förvandla ett Python-skript till en snabb kommandoradsapp.

Numba

Vad Numba gör:  Selektivt påskynda matteintensiva funktioner.

Varför använda Numba:  Python-världen innehåller en hel subkultur av paket för att påskynda matematiska operationer. Till exempel fungerar NumPy genom att lägga in snabba C-bibliotek i ett Python-gränssnitt, och Cython kompilerar Python till C med valfri typning för snabbare prestanda. Men Numba är lätt det mest praktiska, eftersom det gör att Python-funktioner kan selektivt accelereras med inget annat än en dekoratör. För ytterligare hastighetsförstärkningar kan du använda vanliga Python-idiom för att parallellisera arbetsbelastningar eller använda SIMD- eller GPU-instruktioner.

Observera att du kan använda NumPy med Numba. När allt har NumPy många out-of-the-box algoritmer som inte behöver implementeras från grunden. Men för små "kärnalgoritmer" kommer Numba i många fall att överträffa NumPy många gånger.

Openpyxl

Vad Openpyxl gör:  Läser, skriver och manipulerar Excel-filer.

Varför använda OpenPyxl:  Be någon att nämna tre verktyg som antal crunchers använder i sitt arbete, oddsen är att du får Python, R och Excel, inte nödvändigtvis i den ordningen. Excel har (ännu) inte inbyggd Python-anslutning, men tredjepartspaket har överbryggat klyftan på olika sätt.

Openpyxl fungerar genom att ändra Excel-  filer  istället för att manipulera Excel direkt. Med Openpyxl kan du automatisera skapandet av kalkylark och arbetsböcker, generera formler, fylla i celler med dessa formler och utföra många andra åtgärder. Du kan också ändra egenskaperna för Excel-objekt, till exempel cellstilar och villkorlig formatering. Den som spenderar mycket tid på att stirra på kalkylblad hittar något användbart här.

Peewee

Vad Peewee gör:  En liten ORM (objektrelationskarta) som stöder SQLite, MySQL och PostgreSQL, med många tillägg.

Varför använda Peewee:  Inte alla älskar en ORM; vissa lämnar hellre schemamodellering på databassidan och görs med det. Men för utvecklare som inte vill röra vid databaser, kan en välkonstruerad, diskret ORM vara en sken. Och för utvecklare som inte vill ha en ORM så fullvärdig som SQL Alchemy, passar Peewee bra.

Peewee-modeller är lätta att konstruera, ansluta och manipulera. Dessutom är många vanliga frågemanipuleringsfunktioner, som paginering, inbyggda direkt. Fler funktioner är tillgängliga som tillägg inklusive tillägg för andra databaser, testverktyg och ett schemamigrationssystem - en funktion som även en ORM-hatare kan lära sig att kärlek. Observera att Peewee 3.x-grenen (den rekommenderade utgåvan) inte är helt bakåtkompatibel med tidigare versioner av Peewee.

Kudde

Vad kudde gör:  Bildbehandling utan smärta.

Varför använda Pillow:  De flesta pythonistor som har utfört bildbehandling borde känna till PIL (Python Imaging Library), men PIL är full av brister och begränsningar och uppdateras sällan. Pillow syftar till att vara både enklare att använda och  kodkompatibel med PIL via minimala förändringar. Tillägg ingår för att prata med både inbyggda Windows-bildfunktioner och Pythons Tcl / Tk-backade Tkinter GUI-paket. Pillow är tillgängligt via GitHub eller PyPI-förvaret.

Poesi

Vad poesi gör:  Hanterar beroenden och förpackningar för dina Python-projekt på ett högt sätt.

Varför använda poesi:  I teorin behöver du inte göra något för att starta ett nytt Python-projekt förutom att skapa en tom katalog och fylla den med .py-filer. I praktiken, särskilt för ett ambitiöst projekt, måste du göra mycket mer - skapa en README, skapa en del mappstruktur, deklarera dina beroenden och så vidare. Att göra allt detta för hand är en huvudvärk.

Poesi automatiserar mycket av denna installation och underhåll. Kör för poetry new att skapa en ny projektkatalog och virtuell miljö, förfyllt med ett grundläggande sortiment av komponenter. Förklara dina beroenden med Pythons eget pyprojec.toml-filformat, så kommer Poetry att hantera dem åt dig. Befintliga poesihanterade produkter kan ha sina beroenden automatiskt installerade, uppdaterade och modifierade från Poetrys kommandorad. Poesi hanterar också publicering till ett fjärrförvar (som PyPI).

PyFilesystem

Vad PyFilesystem gör:  Ett Pythonic-gränssnitt till vilket filsystem som helstvilket  filsystem som helst .

Varför använda PyFilesystem:  Den grundläggande idén bakom PyFilesystem kunde inte vara enklare: Precis som Pythons fileobjekt abstraherar en enda fil, abstrakt PyFilesystems FSobjekt ett helt filsystem. Det betyder inte bara filsystem på hårddisken heller. PyFilesystem stöder också FTP-kataloger, minnesfilsystem, filsystem för platser som definierats av operativsystemet (t.ex. användarkatalogen) och till och med kombinationer av ovanstående överlagrade på varandra.

Förutom att göra det lättare att skriva plattformskod som manipulerar filer, undanröjer PyFilesystem behovet av att kubba ihop skript från olika delar av standardbiblioteket, främst  os och  io. Det ger också verktyg som man annars kan behöva skapa från grunden, som ett verktyg för att skriva ut konsolvänliga trädvyer av ett filsystem.

Pygame

Vad Pygame gör:  Skapa videospel eller front- end -spelkvalitet i Python.