Programmering

Sådan styres Python-projekter med Pipenv

Pythons pakkeøkosystem giver dig mulighed for at udnytte arbejdet hos millioner af andre udviklere med et simpelt pip-installation kommando. Pythons virtuelle miljøer giver dig mulighed for at isolere projekter og deres pakker for hinanden.

Men jongleringsmiljøer og pakker separat kan være besværlige. Dobbelt så hvis dine projekter har specifikke pakkekrav, og du vil fokusere på udvikling i stedet for vedligeholdelse. Det, vi har brug for, er en måde at styre miljøer og pakker sammen på.

Pipenv ruller styringen af ​​virtuelle Python-miljøer og Python-pakker til et enkelt værktøj. Pipenv sikrer, at hvert projekt bruger den korrekte version af hver pakke, det har brug for, og at hver af disse pakker også har de korrekte afhængigheder.

Desuden genererer Pipenv en liste over dit projekts afhængigheder, der kan rejse med det, så andre brugere eller udviklere kan oprette det samme projekt på samme måde. Andre brugere bliver også nødt til at installere Pipenv for korrekt at oprette et Pipenv-styret projekt, men heldigvis er installation og brug af Pipenv en leg.

Sådan fungerer Pipenv

Når du opretter et Python-projekt og bruger et virtuelt miljø til dets pakker, har du typisk til opgave at oprette det virtuelle miljø selv (ved hjælp af kommandoenpy -m venv), installation af afhængigheder i det og sporing af afhængigheder manuelt.

Pipenv giver en måde at gøre alt dette semi-automatisk på. Det virtuelle miljø til dit projekt oprettes og styres for dig, når du installerer pakker via Pipenvs kommandolinjegrænseflade. Afhængigheder spores og låses, og du kan administrere udviklings- og runtimeafhængigheder separat. Du kan også migrere fra eksisterende old-school krav.txt filer, så du ikke behøver at rive dit projekt fra hinanden og starte det fra bunden for at bruge Pipenv godt.

Bemærk, at i modsætning til andre Python-projektstyringsværktøjer (såsom Poetry) styrer Pipenv ikke projektets "stilladser". Det vil sige, Pipenv skaber ikke den interne struktur i projektmappen med mock-tests, dokumentationsstubber osv., Men fokuserer primært på pakke- og miljøstyring. Dette gør Pipenv til et godt valg, hvis du bare vil have et værktøj til at fokusere på virtuelle miljøer og pakker og ikke en alt-i-en-løsning.

Kom godt i gang med Pipenv

Pipenv installeres på samme måde som de fleste andre Python-pakker: pip install - bruger pipenv. Det --bruger Det anbefales at holde Pipenv i konflikt med andre pakker, der dækker hele systemet. Du skal også tilføje stien til den brugerbaserede binære bibliotek til systemstien, så Pipenv-kommandoer bliver dirigeret til det rigtige sted.

Hvis du planlægger at gøre Pipenv til en konsekvent del af din arbejdsgang, er det også en god ide at holde din underliggende Python-installation så minimal som muligt. Dette råd gælder for de fleste Python-installationer, der bruger virtuelle miljøer.

Opret et nyt projekt med Pipenv

For at starte et helt nyt projekt med Pipenv skal du bare oprette en mappe og udfylde den med de filer, du normalt opretter til et projekt. Hvis du har tendens til at stilladsere et projekt, mens du går, kan du starte med en tom mappe.

Installation af pakker til et projekt er ikke mærkbart anderledes med Pipenv end med Pip; faktisk er syntaksen meget den samme. Åbn en konsol i din projektmappe, og skriv pipenv-installation at installere en pakke til projektet. At specificere, at pakken er til udvikling, brug -d flag. Du kan bruge pip syntaks for at betegne en bestemt version af en pakke (f.eks. sort == 13.0b1).

Når du installerer en pakke med Pipenv, sker der to ting. Først kontrollerer Pipenv, om der allerede er oprettet et virtuelt miljø til denne projektmappe. Hvis ja, installerer Pipenv pakken i det eksisterende virtuelle miljø. Hvis nej, opretter Pipenv et virtuelt miljø, der bruger den samme udgave af Python, der blev brugt til at køre Pipenv. Bemærk, at det virtuelle miljø er ikke oprettet i selve projektmappen det oprettes i et bibliotek, der administreres af Pipenv i din brugerprofil.

For det andet installerer Pipenv de ønskede pakker til det virtuelle miljø. Når installationen er færdig, rapporterer Pipenv alt, hvad det gjorde, inklusive en sti til det virtuelle miljø, hvis det skulle oprette et.

Du behøver generelt ikke at kende stien til det virtuelle miljø, som Pipenv skaber. For at aktivere miljøet skal du bare navigere til dit projektkatalog og bruge detpipenv skal for at starte en ny shell-session eller brugepipenv køre at køre en kommando direkte. Brug f.ekspipenv køre mypy at køre kommandolinjeværktøjsversionen af mypy (forudsat at mypy værktøj blev installeret i det virtuelle miljø) eller pipenv køre python -m at køre et Python-modul, der er tilgængeligt i det virtuelle miljø.

Pipenv og låsefiler

Kig ind i biblioteket, når du har installeret pakker med Pipenv, og du vil se to filer, Pipfile og Pipfile.lock. Begge genereres automatisk af Pipenv og bør ikke redigeres direkte, da de beskriver tilstanden af ​​pakkerne i projektet.

Pipfile er den enkleste af de to. Det viser bare de pakker, der er nødvendige for projektet, hvor de installeres fra (standard er PyPI), og hvilken version af Python der er behov for for at køre alt. Pipfile.lock er mere kompleks. Den viser hver pakke sammen med versionsoplysninger og SHA-256 hashes genereret fra pakken. Hasherne bruges til at sikre, at de installerede pakker matcher Nemlig hvad der er specificeret - ikke kun versionsnummeret, men også det opnåede indhold.

Når du arbejder på et projekt, der bruger Pipenv til pakkehåndtering, skal du tilføje Pipfile og Pipfile.lock filer til versionskontroldatabasen for projektet. Eventuelle ændringer foretaget i pakkerne til dit projekt vil til gengæld ændre disse filer, så disse ændringer skal spores og versioneres.

Brug et Pipenv-projekt

Hvis du downloader et kildelager til et projekt, der bruger Pipenv til pakkehåndtering, er alt, hvad du skal gøre, at pakke indholdet af lageret ud i en mappe og køre pipenv-installation (ingen pakkenavne nødvendige). Pipenv læser Pipfile og Pipfile.lock filer til projektet, opret det virtuelle miljø og installer alle afhængigheder efter behov.

Endelig, hvis du vil bruge Pipenv til at styre et projekt, der i øjeblikket bruger en krav.txt fil, skal du bare navigere til projektets mappe og køre pipenv-installation. Pipenv registrererkrav.txt (eller du kan bruge -r flag for at pege på det) og migrere alle kravene til en Pipfil.

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