Programmering

Hvordan administrere Python-prosjekter med Pipenv

Pythons pakkeøkosystem lar deg utnytte arbeidet til millioner av andre utviklere med et enkelt pip install kommando. Pythons virtuelle miljøer lar deg isolere prosjekter og pakkene deres for hverandre.

Men sjongleringsmiljøer og pakker hver for seg kan være vanskelig. Dobbelt så hvis prosjektene dine har spesifikke pakkekrav, og du vil fokusere på utvikling i stedet for vedlikehold. Det vi trenger er en måte å administrere miljøer og pakker sammen.

Pipenv ruller administrasjonen av virtuelle Python-miljøer og Python-pakker til et enkelt verktøy. Pipenv sørger for at hvert prosjekt bruker riktig versjon av hver pakke det trenger, og at hver av disse pakkene også har de riktige avhengighetene.

Videre genererer Pipenv en liste over prosjektets avhengigheter som kan reise med det, slik at andre brukere eller utviklere kan sette opp det samme prosjektet på samme måte. Andre brukere vil også måtte installere Pipenv for å sette opp et Pipenv-administrert prosjekt på riktig måte, men heldigvis er det en lek å installere og bruke Pipenv.

Hvordan Pipenv fungerer

Vanligvis når du oppretter et Python-prosjekt og bruker et virtuelt miljø for pakkene, har du i oppgave å lage det virtuelle miljøet selv (ved hjelp av kommandoenpy -m venv), installere avhengigheter i den, og spore avhengighetene manuelt.

Pipenv gir en måte å gjøre alt dette semi-automatisk på. Det virtuelle miljøet for prosjektet ditt blir opprettet og administrert for deg når du installerer pakker via Pipenvs kommandolinjegrensesnitt. Avhengigheter spores og låses, og du kan administrere utviklings- og kjøretidsavhengigheter separat. Du kan også migrere fra eksisterende old school krav.txt filer, slik at du ikke trenger å rive prosjektet fra hverandre og starte det fra bunnen av for å bruke Pipenv godt.

Merk at i motsetning til andre Python-prosjektledelsesverktøy (for eksempel poesi), klarer ikke Pipenv “stillaset” til prosjektet ditt. Det vil si at Pipenv ikke lager den interne strukturen i prosjektkatalogen med mock-tester, dokumentasjonsstubber osv., Men fokuserer hovedsakelig på pakke- og miljøadministrasjon. Dette gjør Pipenv til et godt valg hvis du bare vil ha et verktøy for å fokusere på virtuelle miljøer og pakker, og ikke en alt-i-ett-løsning.

Kom i gang med Pipenv

Pipenv installeres på samme måte som de fleste andre Python-pakker: pip install - bruker pipenv. De --bruker alternativet anbefales å holde Pipenv i konflikt med andre systemomspennende pakker. Du bør også legge til banen til den brukerbaserte binære katalogen til systemstien, slik at Pipenv-kommandoer blir dirigert til rett sted.

Hvis du planlegger å gjøre Pipenv til en jevn del av arbeidsflyten din, er det også lurt å holde den underliggende Python-installasjonen så minimal som mulig. Dette rådet gjelder for de fleste Python-installasjoner som bruker virtuelle miljøer.

Sett opp et nytt prosjekt med Pipenv

For å starte et helt nytt prosjekt med Pipenv, er det bare å opprette en katalog og fylle den ut med filene du vanligvis oppretter for et prosjekt. Hvis du pleier å stillas et prosjekt mens du går, kan du starte med en tom katalog.

Installering av pakker for et prosjekt er ikke nevneverdig annerledes med Pipenv enn med Pip; faktisk er syntaksen mye den samme. Åpne en konsoll i prosjektkatalogen og skriv pipenv installere å installere en pakke for prosjektet. Å spesifisere at pakken er for utvikling, bruke -d flagg. Du kan bruke pip syntaks for å betegne en bestemt versjon av en pakke (f.eks. svart == 13.0b1).

Når du installerer en pakke med Pipenv, skjer det to ting. Først vil Pipenv sjekke om det allerede er opprettet et virtuelt miljø for denne prosjektkatalogen. Hvis ja, vil Pipenv installere pakken i det eksisterende virtuelle miljøet. Hvis ikke, vil Pipenv opprette et virtuelt miljø som bruker samme utgave av Python som brukes til å kjøre Pipenv. Merk at det virtuelle miljøet er ikke opprettet i selve prosjektkatalogen; den er opprettet i en katalog administrert av Pipenv i brukerprofilen din.

For det andre vil Pipenv installere de etterspurte pakkene i det virtuelle miljøet. Når installasjonen er ferdig, vil Pipenv rapportere om alt den gjorde, inkludert en vei til det virtuelle miljøet hvis det måtte opprettes.

Du trenger generelt ikke å vite stien til det virtuelle miljøet Pipenv skaper. For å aktivere miljøet er det bare å navigere til prosjektkatalogen og bruke denpipenv skall for å starte en ny skalløkt eller brukepipenv kjøre å kjøre en kommando direkte. Bruk for eksempelpipenv kjøre mypy for å kjøre kommandolinjeverktøyversjonen av mypy (forutsatt at mypy verktøyet ble installert i det virtuelle miljøet), eller pipenv kjøre python -m for å kjøre en Python-modul tilgjengelig i det virtuelle miljøet.

Pipenv og låsefiler

Titt inn i katalogen etter at du har installert pakker med Pipenv, og du ser to filer, Pipfile og Pipfile.lås. Begge genereres automatisk av Pipenv, og skal ikke redigeres direkte, ettersom de beskriver tilstanden til pakkene i prosjektet.

Pipfile er den enkleste av de to. Den viser bare pakkene som trengs for prosjektet, hvor de er installert fra (standard er PyPI), og hvilken versjon av Python som trengs for å kjøre alt. Pipfile.lås er mer kompleks. Den viser hver pakke sammen med versjonsdetaljer og SHA-256 hashes generert fra pakken. Hashene brukes for å sikre at de installerte pakkene samsvarer nøyaktig hva som er spesifisert - ikke bare versjonsnummeret, men også innhentet innhold.

Når du jobber med et prosjekt som bruker Pipenv for pakkehåndtering, vil du legge til Pipfile og Pipfile.lås filer til versjonskontrolldatabasen for prosjektet. Eventuelle endringer i pakkene for prosjektet vil i sin tur endre disse filene, så disse endringene bør spores og verseres.

Bruk et Pipenv-prosjekt

Hvis du laster ned et kildedepot for et prosjekt som bruker Pipenv for pakkehåndtering, er alt du trenger å gjøre å pakke ut innholdet i depotet til en katalog og kjøre pipenv installere (ingen pakkenavn nødvendig). Pipenv vil lese Pipfile og Pipfile.lås filer for prosjektet, opprett det virtuelle miljøet, og installer alle avhengighetene etter behov.

Til slutt, hvis du vil bruke Pipenv til å administrere et prosjekt som for øyeblikket bruker en krav.txt bare naviger til prosjektets katalog og kjør pipenv installere. Pipenv vil oppdagekrav.txt (eller du kan bruke -r flagg for å peke på det) og migrere alle kravene til en Pipfile.

$config[zx-auto] not found$config[zx-overlay] not found