Lag Python-pakker: En komplett guide for 2023

Introduksjon til Python-pakker

Ifølge en undersøkelse fra Stack Overflow i 2023, er Python det tredje mest brukte programmeringsspråket. Det er et allsidig språk som finner anvendelse innenfor områder som datavitenskap, webutvikling, maskinlæring, programvareutvikling og vitenskapelig databehandling. Et sentralt konsept når man lærer og jobber med Python, er bruken av pakker. Men hva er egentlig en Python-pakke, og hvordan kan man lage sine egne?

Denne artikkelen vil gå gjennom følgende:

  • Definere hva Python-pakker er.
  • Forklare hvorfor Python-pakker er essensielle i programmering.
  • Demonstrere prosessen med å lage egne Python-pakker.
  • Vise hvordan man bruker og tester Python-pakker.
  • Forklare hvordan man laster opp Python-pakker.

Hva er Python-pakker?

Python-pakker er fundamentale byggesteiner i moderne programmering. Uten disse pakkene ville utviklere vært nødt til å skrive all kode fra bunnen av, noe som ville gjort programmering til en langsom og krevende prosess. En Python-pakke er i bunn og grunn en samling av Python-moduler, og en modul er igjen en samling gjenbrukbar kode.

En modul i Python er en fil som inneholder Python-kode, som kan importeres og brukes i andre Python-programmer. For å opprette en Python-pakke, må du organisere koden din i en katalog som inneholder en fil ved navn __init__.py.

Python-pakker kan inneholde andre pakker (kjent som nesting), og det finnes tusenvis av Python-pakker tilgjengelige online. Noen av disse er offisielle, mens andre er utviklet av samfunnet. De fleste Python-pakkene er tilgjengelige på https://pypi.org/.

Et godt eksempel er Django, et Python-rammeverk for webutvikling, som er en pakke du kan bruke for å bygge nettapplikasjoner. Innenfor maskinlæring er Scikit-learn, PyTorch og TensorFlow populære pakker.

Betydningen av Python-pakker

Hvorfor ikke lage all kode fra grunnen av? Er Python-pakker virkelig nødvendige? Her er noen av hovedgrunnene til at Python-pakker er så viktige:

  • Tidsbesparelse: Python-pakker gir deg tilgang til ferdigskrevet kode som løser vanlige problemer. Dette lar deg bruke eksisterende løsninger fremfor å måtte oppfinne hjulet på nytt.
  • Forenkler kodedistribusjon: Samarbeid er vanlig innen programmering. Du kan lage en Python-pakke som teammedlemmene dine kan importere når de jobber sammen om et prosjekt.
  • Gjenbruk av kode: Hvis du har kodeblokker du ofte bruker i ulike prosjekter, kan du pakke dem og importere dem i dine applikasjoner.
  • Kodeorganisering: Python-pakker lar deg strukturere koden din i logiske moduler, som gjør koden enklere å lese og vedlikeholde.

Hvordan lage din første Python-pakke

Som et generelt språk, kan Python brukes til å lage en rekke ulike pakker. Du kan for eksempel lage en pakke som automatiserer oppgaver, hjelper med budsjettering, eller til og med underviser et nytt språk. Før du starter, trenger du følgende:

Forutsetninger:

  • Python må være installert på din lokale maskin. Hvis du bruker Linux, er Python som oftest allerede installert. Du kan bruke kommandoen python --version eller python3 --version for å sjekke om Python er installert. Hvis Python er installert, vil du se en versjonsangivelse i terminalen din.

Hvis du ikke har Python, kan du laste den ned fra https://www.python.org/downloads/.

  • En god forståelse av Python. Du bør være kjent med å skrive Python-klasser, moduler og funksjoner.
  • En pakkebehandler. Vi vil bruke pip i denne demonstrasjonen. Du kan sjekke om pip er installert ved å bruke kommandoen:
pip --version

Hvis den er installert, vil du se noe lignende i terminalen din.

Kravene kan variere avhengig av hva slags pakke du ønsker å opprette.

I denne demonstrasjonen lager vi en enkel Python-pakke som sjekker om et tall er et primtall. Følg disse trinnene:

  • Trinn 1: Opprett en prosjektmappe. Jeg kaller min for primechecker.
  • Trinn 2: Lag en ny mappe inni primechecker-mappen, og kall den prime.
  • Trinn 3: Lag en fil i katalogen du opprettet i trinn to, og kall den prime.py. Du kan kombinere disse tre trinnene med følgende kommando:
mkdir primechecker && cd primechecker && mkdir prime && cd prime && touch prime.py
  • Trinn 4: Åpne prosjektet i en kodeeditor. Deretter legger du inn koden som sjekker om et tall er et primtall i prime.py-filen:
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
  • Trinn 5: Lag en ny fil inni prime-mappen, og kall den __init__.py. Denne filen forteller Python at prosjektmappen er en pakke. Du kan bruke denne kommandoen:
touch prime/__init__.py
  • Trinn 6: Test koden din. Vi kan lage et skript i en fil som heter test.py i rotmappen, for å teste om et tall er et primtall. Naviger tilbake til hovedmappen og bruk denne kommandoen:
touch test.py

Deretter legger du til følgende kode i filen:

from prime.prime import is_prime
number = int(input("Skriv inn et tall: "))
result = is_prime(number)
print(f"{number} er et primtall: {result}")

Kjør deretter følgende kommando for å teste koden:

python3 test.py

Du kan nå skrive inn et tall og sjekke om det er et primtall. For eksempel, når jeg sjekket om 5 og 1 er primtall, fikk jeg følgende:

Hvordan laste opp pakken din online

Du kan publisere pakken din på PyPI (Python Package Index), som er et sentralt depot som inneholder tusenvis av Python-pakker. Gå til https://pypi.org/ og opprett en konto om du ikke allerede har en.

Følg disse stegene for å laste opp pakken din:

  • Trinn 1: Lag en ny fil i rotmappen din (primechecker i mitt tilfelle) og kall den setup.py.
  • Trinn 2: Endre innholdet i setup.py-filen til å inkludere informasjon om pakken du vil laste opp. Koden for denne filen skal være som følger:
from setuptools import setup, find_packages
setup(
    name="primechecker",
    version='1.0.0',
    author="Ditt Navn",
    author_email="[email protected]",
    description='En pakke for å sjekke primtall',
    packages=find_packages(),
)

Husk å endre navn, forfatter, e-postadresse og beskrivelse slik at det passer dine pakkeopplysninger.

  • Trinn 3: Bygg pakken din. Kjør denne kommandoen fra rotmappen:
python3 setup.py sdist bdist_wheel

Hvis du sjekker prosjektmappen din, vil du se to nye mapper (build og dist) i rotmappen.

  • Trinn 4: Installer twine. Dette er pakken som brukes for å laste opp pakker til PyPI:
pip install twine
  • Trinn 5: Last opp pakken:
twine upload dist/*

Du vil bli bedt om å skrive inn brukernavn og passord. Hvis navnet på pakken din ikke allerede er i bruk, vil pakken bli publisert online og du vil få en lenke i terminalen din.

Pakken du har publisert vil nå være tilgjengelig for alle. Alle som ønsker å bruke pakken kan laste den ned ved hjelp av pip.

For eksempel, kan pakken jeg har publisert lastes ned med denne kommandoen:

pip install primechecker==1.0.0

Beste praksis for å lage Python-pakker

  • Vær oppmerksom på standardene for Python-pakker: Selv om du står fritt til å bestemme hvilken type pakke du vil lage, husk at Python-pakker har standarder du bør følge. Sjekk disse standardene på https://packaging.python.org/ før du begynner å skrive koden.
  • Test pakken din før du distribuerer den: Feil er vanlig i programmering. Lag skript for å generere automatiserte tester, spesielt når du bygger store pakker. Dette sikrer at du laster opp feilfrie pakker.
  • Versjonskontroll: En ordentlig pakke bør følge semantisk versjonskontroll. Pakken som vi lagde i demonstrasjonen vår hadde versjonsnummer 1.0.0. Det første tallet (1) er Major-versjonen, det andre tallet (0) er Minor-versjonen, og det siste tallet er Patch.
  • Spesifiser alle avhengigheter: Avhengig av behovene dine, kan pakken ha avhengigheter av andre pakker. Du bør nevne alle disse avhengighetene i pakkeinformasjonen under opplasting. Du kan bruke verktøy som setup tools eller poetry for å legge til og administrere avhengighetene.
  • Bruk versjonskontroll: Programmering er en kontinuerlig prosess. Du kan kontinuerlig oppgradere og forbedre pakken din. Det kan også være lurt å invitere bidragsytere. Du kan laste opp pakkekoden din til plattformer som GitHub eller GitLab for å gjøre koden tilgjengelig og tillate samarbeid.
  • Dokumenter koden din: Pakken vi lagde var kun for demonstrasjonsformål. Men hvis du planlegger å dele en pakke med offentligheten eller teammedlemmer, må du dokumentere koden for å veilede brukere. Du kan bruke verktøy som Pydoc eller Sphinx for å generere dokumentasjonen.

Hvor ellers kan jeg laste opp Python-pakker?

Selv om Python Package Index (PyPI) er det offisielle lageret for Python-pakker, er du ikke begrenset til å bruke det. Når du bestemmer hvor du skal laste opp Python-pakken din, bør du vurdere faktorer som filstørrelse, pakkens natur, støttenivået som er nødvendig, og målgruppen din.

Her er andre steder der du kan laste opp Python-pakkene dine:

  • GitHub: GitHub er en av de største kodevertsplattformene. Du kan opprette et depot og legge til Python-pakken som en zip-fil for redistribusjon.
  • Conda: Conda er en pakkebehandler du kan bruke for dine Python-pakker. Denne plattformen er populær blant datavitere. Opprett en konto på Conda og begynn å laste opp pakkene dine.
  • PyPI-speil: Det finnes mange PyPI-speil som replikerer innholdet på PyPI-plattformen. Velg en som passer dine behov.

Konklusjon

Du har nå lært stegene for å lage og publisere Python-pakker online. Eksemplet var grunnleggende, men du kan eksperimentere og lage komplekse pakker. Sørg for å opprettholde en riktig mappestruktur når du bygger Python-pakker.