Python-paket: En grundlig genomgång
Enligt en undersökning från Stackoverflow 2023, är Python det tredje mest frekvent använda programmeringsspråket. Dess mångsidighet gör att det kan tillämpas inom områden som datavetenskap, webbutveckling, maskininlärning, programvaruteknik och vetenskapliga beräkningar.
När du fördjupar dig i Python-världen kommer du oundvikligen att stöta på termen ”Python-paket”. Men vad innebär egentligen detta begrepp, och hur skapar man egna paket?
Denna artikel syftar till att:
- Definiera vad Python-paket är
- Förklara betydelsen av Python-paket inom programmering
- Demonstrera steg-för-steg hur man utvecklar egna Python-paket
- Visa hur man använder och testar skapade Python-paket
- Beskriva hur man publicerar Python-paket online
Vad är Python-paket?
Python-paket kan liknas vid grundläggande byggstenar i programmeringsvärlden. Utan dem skulle utvecklare tvingas bygga all kod från grunden, vilket skulle göra programmeringsprocessen tidskrävande och frustrerande. Python-paket är i grunden samlingar av Python-moduler, vilket innebär återanvändbar kod som är färdig att användas.
En modul i Python är en fil som innehåller Python-kod som enkelt kan importeras i andra Python-program. För att skapa ett Python-paket krävs att koden lagras i en mapp som innehåller en fil med namnet __init__.py.
Ett Python-paket kan även innehålla andra paket (kallas för kapsling) och det finns tusentals färdiga Python-paket tillgängliga online. Vissa är officiella, medan andra är skapade av enskilda utvecklare. De flesta Python-paketen är tillgängliga på https://pypi.org/.
Ett bra exempel på ett Python-paket är Django, ett ramverk för webbutveckling som används för att bygga webbapplikationer. Inom maskininlärning är Scikit-learn, PyTorch och TensorFlow mycket populära paket.
Betydelsen av Python-paket
Varför skulle man inte bara skriva all kod själv från grunden? Är verkligen Python-paket så nödvändiga? Här är några anledningar till varför Python-paket är av avgörande betydelse:
- Tidsbesparing: Python-paket erbjuder färdigskriven kod som löser vanliga problem. Istället för att ”återuppfinna hjulet” kan du snabbt använda dessa paket i dina Python-skript.
- Enkel distribution av kod: Samarbete är vanligt inom programmering. Med Python-paket kan du enkelt dela din kod med teammedlemmar, som enkelt kan importera paketet i sina egna projekt.
- Återanvändbar kod: Om du har kodblock som du ofta använder i dina Python-program, kan du samla dem i ett paket och importera det i dina applikationer.
- Kodorganisation: Python-paket hjälper dig att organisera din kod i logiska moduler. Detta gör koden lättare att läsa, förstå och underhålla.
Skapa ditt första Python-paket
Python är ett generellt språk, och som programmerare kan du skapa en mängd olika paket för att lösa olika problem. Du kan till exempel bygga ett paket som automatiserar uppgifter, hanterar budget eller till och med hjälper dig att lära dig ett nytt språk. Innan du börjar skapa ditt första paket behöver du dock följande förutsättningar:
Förutsättningar:
- Python installerat på din dator: Om du använder Linux är Python ofta förinstallerat. Du kan verifiera installationen genom att använda kommandot `python –version` eller `python3 –version` i din terminal. Om Python är installerat, bör du se något liknande:
Om du inte har Python, kan du ladda ner det från https://www.python.org/downloads/.
- Grundläggande Python-kunskaper: Du behöver förstå hur man skriver Python-klasser, moduler och funktioner.
- En pakethanterare: Vi kommer att använda `pip` i detta exempel. Du kan kontrollera om `pip` är installerat med kommandot:
pip --version
Om `pip` är installerat, bör du se något liknande i din terminal:
Kraven kan variera beroende på vilken typ av paket du vill skapa.
I detta exempel kommer jag att skapa ett enkelt Python-paket som kontrollerar om ett tal är ett primtal. Du kan följa dessa steg:
- Steg ett: Skapa en projektmapp. Jag kommer att kalla min mapp för `primechecker`.
- Steg två: Skapa en undermapp i `primechecker`-mappen och kalla den `prime`.
- Steg tre: Skapa en fil i mappen `prime` och namnge den `prime.py`. Du kan kombinera dessa tre steg med följande kommando:
mkdir primechecker && cd primechecker && mkdir prime && cd prime && touch prime.py
- Steg fyra: Öppna projektet i din kodredigerare. Lägg till följande kod i `prime.py` som kontrollerar om ett tal är primtal:
def is_prime(number): if number < 2: return False for i in range(2, int(number ** 0.5) + 1): if number % i == 0: return False return True
- Steg fem: Inuti `prime`-mappen, skapa en ny fil och kalla den `__init__.py`. Denna fil gör att Python känner igen projektmappen som ett paket.
Du kan använda detta kommando:
touch prime/__init__.py
- Steg sex: Testa din kod. Vi skapar ett skript i en fil med namnet `test.py` i rotmappen som kontrollerar om ett tal är ett primtal. Gå tillbaka till huvudmappen och använd detta kommando:
touch test.py
Lägg till följande kod i `test.py`:
from prime.prime import is_prime number = int(input("Ange ett tal: ")) result = is_prime(number) print(f"{number} är ett primtal: {result}")
Kör nu följande kommando för att testa koden:
python3 test.py
Du kan nu ange ett tal och se om det är ett primtal.
Till exempel, jag har testat med talen 5 och 1 och fått följande utskrift:
Hur man publicerar paketet online
Du kan publicera ditt skapade paket på PyPI (Python Package Index), som är ett centralt arkiv för tusentals Python-paket. Gå till https://pypi.org/ och skapa ett konto om du inte redan har ett.
Följ dessa steg för att publicera ditt paket online:
- Steg 1: Skapa en ny fil i rotmappen (i mitt fall `primechecker`) och kalla den `setup.py`.
- Steg 2: Redigera innehållet i `setup.py` med information om paketet du vill publicera.
Koden i denna fil bör se ut som följande:
from setuptools import setup, find_packages setup( name="primechecker", version='1.0.0', author="Ditt Namn", author_email="[email protected]", description='Ett paket för att kontrollera primtal', packages=find_packages(), )
Ändra `name`, `author`, `author_email` och `description` till de värden som passar ditt paket.
- Steg 3: Bygg ditt paket. Kör detta kommando i rotmappen:
python3 setup.py sdist bdist_wheel
Om du tittar i din projektmapp, kommer du att se två nya mappar (`build` och `dist`) i rotmappen.
- Steg 4: Installera `twine`. Detta är paketet som behövs för att publicera paket till PyPI.
Använd detta kommando:
pip install twine
- Steg 5: Publicera paketet
Använd detta kommando:
twine upload dist/*
Du kommer att bli ombedd att ange ditt användarnamn och lösenord för PyPI. Om namnet på ditt paket inte redan är upptaget, kommer paketet att publiceras online och du får en länk i terminalen.
Paketet är nu tillgängligt för alla. Andra kan ladda ner paketet med `pip`.
Till exempel kan paketet som jag precis har publicerat laddas ner med detta kommando:
pip install primechecker==1.0.0.
Bästa metoder för att skapa Python-paket
- Följ standarderna för Python-paketering: Även om du är fri att skapa vilken typ av paket som helst, kom ihåg att Python-paket följer vissa standarder som du bör känna till. Läs mer om dessa standarder på https://packaging.python.org/ innan du börjar skriva din kod.
- Testa ditt paket noggrant innan du publicerar: Buggar är vanliga i programmering. Skapa skript för att generera automatiska tester, särskilt om du bygger stora paket. Detta säkerställer att du publicerar paket som är fria från fel.
- Versionshantering: Ett korrekt paket bör följa semantisk versionshantering. I vårt exempel har paketet versionsnummer `1.0.0`. Den första siffran (1) är huvudversionen, den andra siffran (0) är delversionen och den sista siffran är korrigeringsversionen.
- Specificera alla beroenden: Beroende på paketets funktion kan det finnas behov av andra paket (beroenden). Du bör ange alla dessa beroenden i beskrivningen av paketet vid publicering. Du kan använda verktyg som `setuptools` eller `poetry` för att hantera dessa beroenden.
- Använd versionskontroll: Programmering är en kontinuerlig process. Du kommer troligtvis att uppgradera eller förbättra ditt paket, lägga till nya funktioner eller göra det mer effektivt. Det kan också vara bra att bjuda in andra att bidra. Du kan publicera din paketkod på plattformar som GitHub eller GitLab för att möjliggöra samarbete och göra koden tillgänglig.
- Dokumentera din kod: Paketet som vi skapade i detta exempel var enkelt, men om du tänker dela paket med allmänheten eller andra teammedlemmar, behöver du skapa dokumentation. Användare behöver en bra vägledning för att använda paketet. Använd verktyg som Pydoc eller Sphinx för att skapa dokumentationen.
Var kan man publicera Python-paket, förutom PyPI?
Även om PyPI (Python Package Index) är den officiella plattformen för Python-paket, betyder det inte att du måste använda den. Några faktorer att beakta när du väljer var du ska publicera dina paket är filernas storlek, typ av paket, vilken nivå av support som behövs och din målgrupp.
Här är andra plattformar där du kan publicera dina Python-paket:
- GitHub: GitHub är den största plattformen för kodhantering. Du kan skapa ett arkiv och lägga till ditt Python-paket som en zip-fil för omdistribution.
- Conda: Conda är en pakethanterare som du kan använda för dina Python-paket. Den här plattformen är känd inom datavetenskap. Skapa ett konto på Conda och publicera dina paket.
- PyPI-speglar: Det finns många PyPI-speglar som replikerar innehållet i PyPI. Välj en som passar dina behov för att publicera ditt paket.
Slutsats
Du har nu fått lära dig grunderna för att skapa och publicera Python-paket. Vårt exempel var enkelt, men du kan experimentera och bygga mer komplexa paket. Kom ihåg att strukturera mapparna korrekt när du skapar Python-paket.