Lær hvordan du oppretter, distribuerer og bruker pakker i Python ved hjelp av denne veiledningen.

Se for deg den skremmende oppgaven med å utvikle en omfattende applikasjon begrenset til en enkelt Python-fil. Selv om det er teknisk mulig, strider det mot kjerneprinsippene for å bygge effektiv, vedlikeholdbar og gjenbrukbar programvare. Av slike grunner er pakker og moduler avgjørende for å bygge og utvikle programvare.

Hva er en pakke?

I Python gir en pakke en måte å organisere logisk relaterte moduler og ressurser sammen. Det er en katalog som inneholder flere Python-moduler, underpakker og andre ressurser.

Pakker gir en hierarkisk struktur, slik at du kan organisere prosjektets kode på forskjellige abstraksjonsnivåer.

Forskjellen mellom pakker og moduler

Mens du kan bruke både pakker og moduler for å organisere kode, det er forskjeller mellom dem:

  • Modul: En modul er en fil som inneholder Python-kode. Den definerer funksjoner, klasser, variabler og andre objekter som du kan importere og bruke i koden.
  • instagram viewer
  • Pakke: En pakke er en samling av én eller flere moduler og kan også inkludere underpakker.

Hvordan lage en pakke i Python

Følg disse trinnene for å lage en pakke.

Trinn 1: Opprett en prosjektkatalog

Start med å lage en prosjektkatalog.

study_bud/

Trinn 2: Opprett en pakkekatalog

Inne i prosjektkatalogen din, lag en annen katalog som vil fungere som pakkekatalogen. Gi den et meningsfylt navn som representerer formålet eller funksjonaliteten til pakken. Pakkekatalogen vil inneholde modulene og underpakkene relatert til pakken din.

study_bud/
math_tool/

Trinn 3: Definer pakke __init__.py-filen

I pakkekatalogen oppretter du en __init__.py fil. Nærværet av __init__.py fil er det som gjør katalogen til en pakke i Python.

Hvis du trenger å initialisere en kode hver gang du bruker pakken, inkluderer du den i __init__.py fil ellers er den alltid tom.

study_bud/
math_tool/
__init__.py

Trinn 4: Legg til moduler i pakken

I pakkekatalogen legger du til Python-moduler (.py) som definerer funksjoner, klasser eller variabler.

Disse modulene inneholder den faktiske koden som gir funksjonaliteten til pakken din. Du kan opprette flere moduler i pakkekatalogen.

study_bud/
math_tool/
__init__.py
operations.py
statistics.py

Trinn 5: Legg til underpakker til pakken

Hvis pakken din trenger å ha en hierarkisk struktur eller inneholder distinkte funksjoner, kan du opprette underpakker i pakkekatalogen.

En underpakke er ganske enkelt en annen pakkekatalog i hovedpakkekatalogen. Hver underpakke skal ha sin __init__.py fil. Underpakker gir mulighet for ytterligere organisering og separering av kode.

study_bud/
math_tool/
__init__.py
operations.py
statistics.py
geometry/
__init__.py
shapes.py
calculus/
__init__.py
integrations.py

I disse trinnene har du opprettet en math_tool pakke, lagt til to moduler (operations.py og statistics.py), og to underpakker geometri og kalkulus hver har sine moduler.

Ved å følge disse trinnene kan du enkelt organisere relatert funksjonalitet ved å bruke en pakke og underpakker, noe som gjør det enklere å administrere og gjenbruke kode.

Hvordan jobbe med en pakke i Python

For å jobbe med en pakke må du importere den. De import og fra nøkkelord lar deg importere og bruke en pakke i koden din.

import math_tool # entire package

Du kan også bruke punktnotasjonen for å importere moduler, underpakker eller spesifikke egenskaper fra en pakke. Punktnotasjonen lar deg navigere gjennom pakkekatalogstrukturen. Punktnotasjon gjør importen din mer lesbar og enklere å vedlikeholde.

from math_tool.operations import add, multiply # specific functions

I koden ovenfor navigerte du fra pakkekatalogen (math_tool) til operasjoner modul ved hjelp av punktnotasjonen og importerte to funksjoner (Legg til og multiplisere).

Absolutt import vs. Relativ import

Med absoluttimport, spesifiserer du hele banen fra toppnivåpakken (rotpakken) til ønsket modul eller underpakke. Dette er den vanligste og mest anbefalte måten å importere moduler og pakker i Python.

from math_tool.geometry.shapes import parallelogram

Starter fra math_tool gå inn i geometri underpakke, finn shapes.py modul, og importer parallellogram funksjon.

Samtidig som slektningimport lar deg lage importer i forhold til gjeldende moduls plassering ved å bruke punktnotasjonen for å spesifisere relativ import.

For eksempel inne i calculus/integrations.py modul, kan du bruke relativ import for å importere en funksjon fra shapes.py modul i geometri underpakke.

# calculus/integrations.py
from ..geometry.shapes import rhombus

Den doble prikken ("..") forteller Python å:

  • Start fra underpakkekatalogen (kalkulus) hvor modulen (integrations.py) finnes.
  • Gå inn i foreldrepakken (math_tool) katalogen til underpakken.
  • Finn geometri underpakke i overordnet katalog.
  • Gå inn i shapes.py modul og import rombe fra det.

Så punktnotasjonen representerer antall kataloger å navigere til fra gjeldende modulkatalog.

Alias ​​importer for enkelhets skyld

Du kan tilordne et alias til en import som gjør det lettere å referere til i koden. Aliaser er nyttige når du har å gjøre med lange pakke- eller modulnavn.

For å tilordne et alias, bruk som nøkkelord.

import math_tool.calculus as cal

Slik distribuerer du pakken din i Python

Python gir deg verktøy og en plattform for å bygge og distribuere pakken din. Ved å distribuere pakken din kan du dele koden din med andre utviklere, fremme samarbeid, forenkle installasjonen for brukere og bidra til det bredere Python-fellesskapet.

Trinn 1: Opprett en konto på PyPI

Python-pakkeindeks (PyPI) er standardlageret for Python-pakker. Du kan publisere pakkene dine på PyPI slik at andre utviklere enkelt kan finne og installere dem.

Sørg for å huske din brukernavn og passord da du trenger dem for autentisering når du laster opp pakken til PyPI.

Disse verktøyene gjør det enkelt for deg å konfigurere, bygge og pushe en distribuerbar pakke i én enkelt kommando.

pip install build wheel twine

Trinn 3: Opprett en setup.py-fil

For å distribuere pakken din, lag en setup.py-filen i prosjektets rotkatalog. De setup.py filen inneholder metadata om pakken din, for eksempel navn, versjon, forfatter, beskrivelse, avhengigheter og mer.

Pakkeadministrasjonsverktøyene vil bruke setup.py fil for å konfigurere og bygge pakken din.

#setup.py
from setuptools import setup, find_packages

setup(
name='',
version='1.0.0',
author='',
description='A collection of mathematical utility functions',
packages=find_packages(),
install_requires=[
'numpy',
'scipy',
],
)

Trinn 4: Bygg pakken

Når du har setup.py fil klar, kan du bruke den til å bygge en distribuerbar pakke. I terminalen eller ledeteksten, naviger til katalogen som inneholder setup.py fil og kjør følgende kommando:

python setup.py sdist bdist_wheel

Denne kommandoen genererer en dist katalog som inneholder en kildedistribusjonspakke (.tar.gz) og en hjuldistribusjonspakke (.whl). Du vil også se en bygge og info katalog.

Trinn 5: Last opp pakken til PyPI

Med pakken klar kan du laste den opp til PyPI.

Utfør følgende kommando:

twine upload dist/*
> Uploading distributions to https://upload.pypi.org/legacy/
> Enter your username: **********
> Enter your password: **********

Besøk din PyPI prosjektstyringsside for å se pakken din.

Nå kan andre utviklere som synes pakken din er nyttig installere og bruke den lokalt.

Hvordan installere en Python-pakke

Pakkeforvaltere liker pip gjør det enkelt å installere og administrere Python-pakker fra ulike kilder, inkludert Python Package Index (PyPI). For å installere en pakke ved å bruke pip, åpne terminalen eller ledeteksten og bruk følgende kommando:

pip install 

For å se alle tilgjengelige kommandoer og alternativer for pip bruke --hjelp alternativ.

Skrive rene moduler

Pakker inneholder moduler og underpakker som igjen inneholder andre moduler. Det er en god praksis å modularisere koden din, spesielt når du jobber med større prosjekter, siden det fremmer bedre kodeorganisering og lesbarhet. Så det er viktig å skrive moduler med klarhet når du utvikler med Python.