Bygge med build
Opprett wheels og sdists
Bygge med build er en gratis leksjon i Python Academy på CoddyKit. Dette er leksjon 2 av 4. Du kan lese hele leksjonen gratis nedenfor – og deretter øve praktisk i nettleseren med en innebygd kodeeditor og en AI-veileder som er tilgjengelig døgnet rundt. Den er en del av læringsløpet i Python Academy, og fremdriften din synkroniseres mellom nettet og CoddyKit-appen. Kurset i Python Academy inneholder totalt 4 leksjoner.
Hva bygging betyr
Kildekoden må gjøres om til distribusjonsartefakter som pip kan installere. Det moderne verktøyet for dette er build, som kjøres med python -m build.
Det produserer to typer filer: en kildedistribusjon og en wheel-fil.
sdist kontra wheel
Det finnes to artefakttyper:
- sdist (.tar.gz) er et kildearkiv; pip bygger det ved installasjon
- wheel (.whl) er et forhåndsbygd arkiv; pip pakker det bare ut
Wheel-filer installeres raskere og foretrekkes. sdist er reservealternativet og den kanoniske kildekoden.
Installere byggeverktøyet
Installer det én gang med pip install build. Det er en tynn frontend: den leser pyproject.toml, setter opp et isolert miljø og kaller build-backenden for å opprette artefaktene.
De kaller ikke backenden direkte; build koordinerer den.
Kjøre byggingen
Kjør python -m build fra prosjektroten. Som standard oppretter kommandoen både en sdist og en wheel-fil og legger dem i en ny dist/-mappe.
Bruk --wheel eller --sdist for å bygge bare én av dem.
args = []
targets = []
if '--sdist' in args:
targets.append('sdist')
if '--wheel' in args:
targets.append('wheel')
if not targets:
targets = ['sdist', 'wheel']
print('Will build:', targets)Filnavn for wheel-filer
Wheel-navn inneholder metadata: mytool-0.1.0-py3-none-any.whl betyr navnet mytool, versjonen 0.1.0, Python 3, ingen ABI-krav og en hvilken som helst plattform. Rene Python-pakker får py3-none-any.
name = 'mytool'
version = '0.1.0'
wheel = name + '-' + version + '-py3-none-any.whl'
print(wheel)
print('Parts:', wheel[:-4].split('-'))Isolert bygging
Som standard oppretter build et nytt virtuelt miljø, installerer requires fra [build-system] og bygger pakken der. Dette sikrer at byggingen ikke ved et uhell avhenger av pakker som bare tilfeldigvis finnes i miljøet Deres.
Undersøke dist-mappen
Etter en bygging inneholder dist/ artefaktene Deres. Ved å liste innholdet kan De kontrollere hva som ble produsert før opplasting. Dette er en vanlig kataloglisting.
dist = ['mytool-0.1.0.tar.gz', 'mytool-0.1.0-py3-none-any.whl']
for f in dist:
kind = 'sdist' if f.endswith('.tar.gz') else 'wheel'
print(kind.ljust(6), f)Kontrollere en wheel-fil
En wheel-fil er bare et ZIP-arkiv. De kan pakke den ut for å kontrollere at modulene og datafilene er med, og at ingenting viktig mangler. Hvis en fil mangler her, vil den også mangle etter installasjonen.
Rene bygginger
Foreldede filer i build/ eller dist/ kan gi forvirrende resultater. Slett disse mappene før en bygging til en utgivelse, slik at De publiserer nøyaktig det den gjeldende kildekoden produserer.
stale_dirs = ['build', 'dist', 'mytool.egg-info']
for d in stale_dirs:
print('Remove before clean build:', d)Reproduserbare bygginger
Den samme kildekoden bør alltid bygge de samme artefaktene. Lås versjonene av build-backenden i [build-system] requires, og unngå å hente verdier fra det aktive miljøet. Reproduserbarhet betyr at en kollega eller CI-server får identisk resultat.
Sammen med rene bygginger fjerner dette overraskelser av typen «det fungerer på min maskin».
Bygge i CI
De fleste prosjekter bygges på en continuous-integration-server i stedet for på en bærbar datamaskin. En CI-jobb henter koden, kjører python -m build og lagrer artefaktene. Dette sikrer at utgivelser alltid kommer fra en kjent og ren tilstand.
Den nøyaktig samme kommandoen som kjøres lokalt, kjøres også i CI.
Hurtigsjekk
Test kunnskapene Deres om bygging.
Oppsummering
De har lært å bygge artefakter:
pip install build, deretterpython -m build- Oppretter en sdist (.tar.gz) og en wheel (.whl) i
dist/ - Bygginger skjer i et isolert miljø ved hjelp av
[build-system]-verdienrequires - Undersøk wheel-filen, og utfør rene bygginger før utgivelse
Lær deg Python med en AI-veileder – gratis
Skriv og kjør ekte kode i nettleseren, få umiddelbar hjelp fra en AI-veileder som er tilgjengelig døgnet rundt, og fortsett der du slapp – på nettet eller i appen.
- Kurs
- 76
- Leksjoner
- 320
Ofte stilte spørsmål
Er leksjonen «Bygge med build» gratis?
Ja – hele teksten i «Bygge med build» er gratis å lese her på nettet. For å øve interaktivt med en innebygd kodeeditor og en AI-veileder som er tilgjengelig døgnet rundt, og for å låse opp resten av Python Academy-kurset, kan du oppgradere til CoddyKit PRO. Kurset i Python Academy inneholder totalt 4 leksjoner.
Hva lærer jeg i «Bygge med build»?
Opprett wheels og sdists Du øver på Python Academy med praktisk kode som du kjører direkte i nettleseren, mens en AI-veileder som er tilgjengelig døgnet rundt, svarer på spørsmålene dine mens du jobber deg gjennom leksjonen.
Trenger jeg erfaring for å begynne med Python Academy?
Ingen tidligere erfaring er nødvendig. Python Academy på CoddyKit er lagt opp for både nybegynnere og viderekomne, så De kan begynne her eller helt fra start og lære i Deres eget tempo. Dette er leksjon 2 av 4.
Hvor lang tid tar leksjonen «Bygge med build»?
De fleste CoddyKit-leksjoner tar omtrent 5–10 minutter. Hver leksjon er kort og interaktiv, slik at De gjør jevne fremskritt og kan fortsette akkurat der De slapp – både på nettet og i appen.
Kan jeg skrive og kjøre kode i denne Python Academy-leksjonen?
Ja. Alle Python Academy-leksjoner har en innebygd kodeeditor, slik at De kan skrive og kjøre ekte kode direkte i nettleseren og få umiddelbar tilbakemelding fra AI – uten lokal konfigurering.