Programiranje

Kako upravljati projekte Python s Pipenv

Pythonov paketni ekosistem vam omogoča, da s preprostim izkoristite delo milijonov drugih razvijalcev pip namestite ukaz. Pythonova navidezna okolja vam omogočajo, da med seboj izolirate projekte in njihove pakete.

Toda žongliranje okolij in paketov ločeno je lahko težavno. Dvojno je, če imajo vaši projekti posebne zahteve glede paketa in se želite osredotočiti na razvoj namesto na vzdrževanje. Potrebujemo način skupnega upravljanja okolja in paketov.

Pipenv združi upravljanje navideznih okolij Python in paketov Python v eno samo orodje. Pipenv zagotavlja, da vsak projekt uporablja pravilno različico vsakega paketa, ki ga potrebuje, in da ima vsak od teh paketov tudi ustrezne odvisnosti.

Nadalje Pipenv ustvari seznam odvisnosti vašega projekta, ki lahko potujejo z njim, kar drugim uporabnikom ali razvijalcem omogoča, da na enak način ustanovijo isti projekt. Tudi drugi uporabniki bodo morali namestiti Pipenv, da bodo pravilno nastavili projekt, ki ga vodi Pipenv, toda na srečo je namestitev in uporaba Pipenva vetrič.

Kako deluje Pipenv

Ko ustvarite projekt Python in za njegove pakete uporabite navidezno okolje, imate nalogo, da sami ustvarite navidezno okolje (z uporabo ukazapy -m venv), nameščanje odvisnosti vanj in sledenje odvisnostim ročno.

Pipenv ponuja način, kako vse to narediti polavtomatsko. Navidezno okolje za vaš projekt se ustvari in upravlja za vas, ko pakete nameščate prek Pipenvevega vmesnika ukazne vrstice. Odvisnosti se spremljajo in zaklepajo, odvisnosti od razvoja in izvajalnega okolja pa lahko upravljate ločeno. Lahko se preselite tudi iz obstoječe stare šole zahteve.txt datotek, zato vam za dobro uporabo Pipenva ni treba raztrgati projekta in ga začeti znova.

Upoštevajte, da za razliko od drugih orodij za upravljanje projektov Python (kot je Poetry), Pipenv ne upravlja z "odrom" vašega projekta. To pomeni, da Pipenv ne ustvarja notranje strukture imenika projektov z lažnimi testi, dokumentacijo itd., Temveč se osredotoča predvsem na upravljanje paketov in okolja. Zaradi tega je Pipenv dobra izbira, če želite le orodje, ki se osredotoča na navidezna okolja in pakete, in ne rešitev vse v enem.

Začnite s Pipenv

Pipenv se namesti na enak način kot večina katerega koli drugega paketa Python: pip namestitev - uporabnik pipenv. The - uporabnik Priporočljiva je možnost, da Pipenv prepreči navzkrižje z drugimi sistemskimi paketi. V sistemsko pot morate dodati tudi pot do binarnega imenika osnovnega uporabnika, tako da bodo ukazi Pipenv preusmerjeni na pravo mesto.

Če nameravate Pipenv narediti dosleden del vašega poteka dela, je tudi dobra ideja, da osnovna namestitev Pythona ostane čim manjša. Ta nasvet velja za večino katere koli namestitve Python, ki uporablja navidezna okolja.

Ustanovite nov projekt s podjetjem Pipenv

Če želite začeti popolnoma nov projekt s Pipenv, preprosto ustvarite imenik in ga zapolnite z datotekami, ki jih običajno ustvarite za projekt. Če nagnite projekt med odri, lahko začnete s praznim imenikom.

Namestitev paketov za projekt se pri Pipenvu bistveno ne razlikuje kot pri Pipu; pravzaprav je skladnja skoraj enaka. Odprite konzolo v imeniku projekta in vnesite namestitev pipenv namestiti paket za projekt. Če želite določiti, da je paket za razvoj, uporabi -d zastavo. Lahko uporabiš pip sintaksa za označevanje določene različice paketa (npr. črna == 13.0b1).

Ko namestite paket s Pipenv, se zgodita dve stvari. Najprej bo Pipenv preveril, ali je za ta imenik projektov že ustvarjeno navidezno okolje. Če je odgovor pritrdilen, bo Pipenv paket namestil v obstoječe navidezno okolje. Če ne, bo Pipenv ustvaril navidezno okolje, ki uporablja isto izdajo Pythona, ki se uporablja za zagon Pipenva. Upoštevajte, da je navidezno okolje ne ustvarjen v samem imeniku projekta; ustvarjen je v imeniku, ki ga v vašem uporabniškem profilu upravlja Pipenv.

Drugič, Pipenv bo v virtualno okolje namestil zahtevane pakete. Ko bo namestitev končana, bo Pipenv poročal o vsem, kar je storil, vključno s potjo do navideznega okolja, če bi ga moral ustvariti.

Na splošno vam ni treba poznati poti do navideznega okolja, ki ga ustvari Pipenv. Če želite aktivirati okolje, se preprosto pomaknite do imenika projekta in uporabitelupina pipenv za zagon nove lupine seje ali uporabepipenv tek za neposreden zagon ukaza. Na primer, uporabitepipenv zaženi mypy za zagon različice orodja ukazne vrstice mypy (ob predpostavki mypy orodje nameščeno v navideznem okolju), oz pipenv zaženi python -m za zagon modula Python, ki je na voljo v navideznem okolju.

Pipenv in lockfiles

Ko namestite pakete s Pipenv, poglejte v imenik in videli boste dve datoteki: Pipfile in Pipfile.lock. Pipenv samodejno ustvari oba in ju ne bi smeli neposredno urejati, saj opisujeta stanje paketov v projektu.

Pipfile je enostavnejše od obeh. Navaja samo pakete, potrebne za projekt, od kod so nameščeni (privzeto je PyPI) in katero različico Pythona potrebujemo za zagon vsega. Pipfile.lock je bolj zapleteno. V njem je naveden vsak paket skupaj s podrobnostmi o različici in razpršenimi SHA-256, ustvarjenimi iz paketa. Razpršitve se uporabljajo za zagotovitev, da se nameščeni paketi ujemajo natančno kaj je določeno - ne samo številka različice, ampak tudi pridobljena vsebina.

Ko delate na projektu, ki za upravljanje paketov uporablja Pipenv, boste želeli dodati Pipfile in Pipfile.lock datoteke v repozitorij nadzora različic za projekt. Vse spremembe paketov za vaš projekt bodo spremenile te datoteke, zato jim je treba slediti in jih spremeniti v različice.

Uporabite projekt Pipenv

Če prenesete izvorno repozitorij za projekt, ki za upravljanje paketov uporablja Pipenv, morate le razpakirati vsebino repozitorija v imenik in zagnati namestitev pipenv (imena paketov niso potrebna). Pipenv bo prebral Pipfile in Pipfile.lock datoteke za projekt, ustvarite navidezno okolje in po potrebi namestite vse odvisnosti.

Nazadnje, če želite uporabiti Pipenv za upravljanje projekta, ki trenutno uporablja zahteve.txt datoteko, se preprosto pomaknite do imenika projekta in zaženite namestitev pipenv. Pipenv bo zaznalzahteve.txt (ali pa lahko uporabite -r zastavico, ki kaže nanjo) in vse zahteve preselite v Pipfile.

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