Programavimas

Kaip valdyti „Python“ projektus naudojant „Pipenv“

„Python“ paketų ekosistema leidžia paprasčiau panaudoti milijonų kitų kūrėjų darbą pip įdiegti komandą. Virtuali „Python“ aplinka leidžia izoliuoti projektus ir jų paketus vienas kitam.

Tačiau žongliruoti aplinka ir paketais atskirai gali būti sunku. Be abejo, jei jūsų projektams taikomi konkretūs paketų reikalavimai, o jūs norite daugiau dėmesio skirti plėtrai, o ne priežiūrai. Mums reikia būdas kartu valdyti aplinką ir paketus.

„Pipenv“ sujungia „Python“ virtualių aplinkų ir „Python“ paketų valdymą į vieną įrankį. „Pipenv“ užtikrina, kad kiekvienas projektas naudoja teisingą kiekvieno jam reikalingo paketo versiją ir kad kiekvienas iš šių paketų taip pat turi teisingas priklausomybes.

Be to, „Pipenv“ sugeneruoja jūsų projekto priklausomybių, kurios gali keliauti kartu, sąrašą, leidžiant kitiems vartotojams ar kūrėjams tą patį projektą sukurti tą patį. Kiti vartotojai taip pat turės įdiegti „Pipenv“, kad tinkamai nustatytų „Pipenv“ valdomą projektą, tačiau, laimei, „Pipenv“ diegimas ir naudojimas yra vėjas.

Kaip veikia „Pipenv“

Paprastai, kai kuriate „Python“ projektą ir jo paketams naudojate virtualią aplinką, turite užduotis patys susikurti virtualią aplinką (naudodami komandąpy -m venv), įdiegdami į ją priklausomybes ir stebėdami priklausomybes rankiniu būdu.

„Pipenv“ suteikia galimybę tai padaryti pusiau automatiškai. Virtuali jūsų projekto aplinka sukuriama ir valdoma jums, kai įdiegiate paketus per „Pipenv“ komandinės eilutės sąsają. Priklausomybės yra stebimos ir užrakintos, be to, galite atskirai valdyti kūrimo ir vykdymo laiko priklausomybes. Taip pat galite migruoti iš esamos senosios mokyklos reikalavimai.txt failus, todėl jums nereikia išardyti savo projekto ir pradėti jį nuo nulio, kad gerai naudotumėte „Pipenv“.

Atkreipkite dėmesį, kad skirtingai nei kiti „Python“ projektų valdymo įrankiai (pvz., „Poezija“), „Pipenv“ netvarko jūsų projekto „pastolių“. Tai reiškia, kad „Pipenv“ nesukuria vidinės projekto katalogo struktūros su bandomaisiais bandymais, dokumentacijos štampais ir pan., Bet daugiausia dėmesio skiria paketų ir aplinkos valdymui. Tai daro „Pipenv“ gerą pasirinkimą, jei norite tik įrankio, kuris sutelktų dėmesį į virtualią aplinką ir paketus, o ne į „viskas viename“ sprendimą.

Pradėkite nuo „Pipenv“

„Pipenv“ diegiama taip pat, kaip ir dauguma kitų „Python“ paketų: pip install --naudotojas pipenv. --Vartotojas rekomenduojama, kad „Pipenv“ nekonfliktuotų su kitais visos sistemos paketais. Taip pat turėtumėte pridėti kelią į vartotojo bazės dvejetainį katalogą prie sistemos kelio, kad „Pipenv“ komandos būtų nukreiptos į reikiamą vietą.

Jei planuojate padaryti „Pipenv“ nuoseklią darbo eigos dalį, taip pat patartina kuo mažiau išlaikyti pagrindinį „Python“ diegimą. Šis patarimas tinka daugumai bet kokių „Python“ diegimų, kuriuose naudojama virtuali aplinka.

Su „Pipenv“ nustatykite naują projektą

Norėdami pradėti visiškai naują projektą naudodami „Pipenv“, tiesiog sukurkite katalogą ir užpildykite failais, kuriuos paprastai sukūrėte projektui. Jei eidami esate linkę pastatyti projektą, galite pradėti nuo tuščio katalogo.

Diegiant paketus projektui „Pipenv“ pastebimai nesiskiria nuo „Pip“; iš tikrųjų sintaksė yra beveik vienoda. Atidarykite konsolę savo projekto kataloge ir įveskite pipenv įdiegti įdiegti projekto paketą. Norėdami nurodyti, kad paketas skirtas plėtrą, naudoti -d vėliava. Tu gali naudoti pip sintaksė, nurodanti konkrečią paketo versiją (pvz., juoda == 13.0b1).

Kai įdiegiate paketą su „Pipenv“, įvyksta du dalykai. Pirmiausia „Pipenv“ patikrins, ar šiam projekto katalogui jau sukurta virtuali aplinka. Jei taip, „Pipenv“ įdiegs paketą į esamą virtualią aplinką. Jei ne, „Pipenv“ sukurs virtualią aplinką, kurioje bus naudojamas tas pats „Python“ leidimas, kuris buvo naudojamas „Pipenv“ paleisti. Atkreipkite dėmesį, kad virtuali aplinka yra ne sukurtas pačiame projekto kataloge; jis sukurtas kataloge, kurį jūsų vartotojo profilyje valdo „Pipenv“.

Antra, „Pipenv“ įdiegs prašomus paketus į virtualią aplinką. Kai diegimas bus baigtas, „Pipenv“ praneš apie viską, ką jis padarė, įskaitant kelią į virtualią aplinką, jei ją reikės sukurti.

Paprastai nereikia žinoti kelio į virtualią aplinką, kurią sukuria „Pipenv“. Norėdami suaktyvinti aplinką, tiesiog eikite į savo projekto katalogą ir naudokitepipenv apvalkalas pradėti naują apvalkalo seansą arba naudotipipenv paleisti paleisti komandą tiesiogiai. Pavyzdžiui, naudokitepipenv paleisti mypy paleisti komandinės eilutės įrankio versiją mypy (darant prielaidą, kad mypy įrankis buvo įdiegtas virtualioje aplinkoje), arba pipenv paleisti pitoną -m paleisti „Python“ modulį, prieinamą virtualioje aplinkoje.

„Pipenv“ ir „lockfiles“

Pažvelkite į katalogą, kai įdiegsite paketus su „Pipenv“, ir pamatysite du failus, Pipfile ir „Pipfile.lock“. Abu jie yra automatiškai sugeneruoti „Pipenv“ ir neturėtų būti tiesiogiai redaguojami, nes jie apibūdina paketų būseną projekte.

Pipfile yra paprastesnis iš dviejų. Jame tik išvardyti projektui reikalingi paketai, iš kur jie įdiegti (numatytasis parametras yra PyPI) ir kuri „Python“ versija reikalinga viskam paleisti. „Pipfile.lock“ yra sudėtingesnis. Kiekviename pakete pateikiama išsami informacija apie versiją ir SHA-256 maišos, sugeneruotos iš paketo. Maišos naudojamos siekiant užtikrinti, kad įdiegti paketai sutaptų tiksliai kas nurodyta - ne tik versijos numeris, bet ir gautas turinys.

Kai dirbate projekte, kuriame paketų valdymui naudojamas „Pipenv“, turėsite pridėti Pipfile ir „Pipfile.lock“ failus į projekto versijų valdymo talpyklą. Visi pakeitimai, atlikti jūsų projekto paketuose, savo ruožtu pakeis tuos failus, todėl tuos pakeitimus reikėtų stebėti ir versijomis.

Naudokitės „Pipenv“ projektu

Jei atsisiųsite projekto, kuris paketams tvarkyti naudoja „Pipenv“, šaltinio saugyklą, jums tereikia išpakuoti saugyklos turinį į katalogą ir paleisti pipenv įdiegti (nereikia jokių paketų pavadinimų). Pipenv perskaitys Pipfile ir „Pipfile.lock“ projekto failus, sukurkite virtualią aplinką ir, jei reikia, įdiekite visas priklausomybes.

Galiausiai, jei norite naudoti „Pipenv“ valdyti projektą, kuriame šiuo metu naudojamas a reikalavimai.txt failą, tiesiog eikite į projekto katalogą ir paleiskite pipenv įdiegti. Pipenv aptiksreikalavimai.txt (arba galite naudoti -r pažymėti į ją) ir perkelti visus reikalavimus į a Pipfile.