Programmēšana

Kā pārvaldīt Python projektus ar Pipenv

Python paketes ekosistēma ļauj vienkārši izmantot miljoniem citu izstrādātāju darbu pip instalēt komandu. Python virtuālās vides ļauj jums izolēt projektus un to paketes viens otram.

Bet žonglēšana ar vidi un pakotnēm atsevišķi var būt apgrūtinoša. Apšaubāmi, ja jūsu projektiem ir noteiktas paketes prasības, un jūs vēlaties koncentrēties uz attīstību, nevis uzturēšanu. Mums ir nepieciešams veids, kā kopīgi pārvaldīt vidi un paketes.

Pipenv apvieno Python virtuālo vidi un Python pakotņu pārvaldību vienā rīkā. Pipenv nodrošina, ka katrs projekts izmanto katras nepieciešamās paketes pareizo versiju un ka katrai no šīm paketēm ir arī pareizās atkarības.

Turklāt Pipenv ģenerē jūsu projekta atkarību sarakstu, kas var ceļot ar to, ļaujot citiem lietotājiem vai izstrādātājiem to pašu projektu izveidot tāpat. Arī citiem lietotājiem būs jāinstalē Pipenv, lai pareizi izveidotu Pipenv pārvaldītu projektu, taču, par laimi, Pipenv instalēšana un izmantošana ir brīze.

Kā darbojas Pipenv

Parasti, izveidojot Python projektu un tā pakotnēm izmantojot virtuālo vidi, jums tiek uzdots pašam izveidot virtuālo vidi (izmantojot komandupy -m venv), instalējot tajā atkarības un manuāli izsekojot atkarības.

Pipenv nodrošina veidu, kā to visu izdarīt pusautomātiski. Virtuālā vide jūsu projektam tiek izveidota un pārvaldīta jums, instalējot paketes, izmantojot Pipenv komandrindas saskarni. Atkarības tiek izsekotas un bloķētas, un jūs varat pārvaldīt attīstības un izpildlaika atkarības atsevišķi. Varat arī migrēt no esošās vecās skolas prasības.txt failus, tāpēc jums nav nepieciešams saplēst savu projektu un sākt to no jauna, lai labi izmantotu Pipenv.

Ņemiet vērā, ka atšķirībā no citiem Python projektu pārvaldības rīkiem (piemēram, Dzeja), Pipenv nepārvalda jūsu projekta “sastatnes”. Tas ir, Pipenv neveido projekta direktorijas iekšējo struktūru ar izspēles testiem, dokumentācijas pamatiem utt., Bet galvenokārt koncentrējas uz pakotņu un vides pārvaldību. Tas padara Pipenv par labu izvēli, ja vēlaties tikai rīku, kas koncentrējas uz virtuālo vidi un pakotnēm, nevis visu vienā risinājumu.

Sāciet darbu ar Pipenv

Pipenv tiek instalēts tāpat kā lielākā daļa citu Python pakotņu: instalēt - lietotājs. The --lietotājs Ieteicams izmantot opciju, lai Pipenv nebūtu pretrunā ar citām visas sistēmas pakotnēm. Jums arī jāpievieno ceļš uz lietotāju bāzes bināro direktoriju sistēmas ceļam, lai Pipenv komandas tiktu novirzītas pareizajā vietā.

Ja jūs plānojat padarīt Pipenv par konsekventu sava darbplūsmas daļu, ieteicams arī saglabāt pēc iespējas minimālu pamata Python instalāciju. Šis padoms attiecas uz lielāko daļu jebkuru Python instalāciju, kurā tiek izmantotas virtuālās vides.

Izveidojiet jaunu projektu kopā ar Pipenv

Lai sāktu pilnīgi jaunu projektu ar Pipenv, vienkārši izveidojiet direktoriju un aizpildiet to ar failiem, kurus parasti izveidojat projektam. Ja jums ir tendence sastatīt projektu ejot, varat sākt ar tukšu direktoriju.

Pakotņu instalēšana projektam neatšķiras no Pipenv nekā ar Pip; patiesībā sintakse ir gandrīz vienāda. Atveriet konsoli projekta direktorijā un ierakstiet pipenv instalēt instalēt projektam paketi. Lai norādītu, ka pakete domāta attīstību, izmantojiet -d karogu. Tu vari izmantot pip sintakse, lai apzīmētu konkrētu pakotnes versiju (piem., melns == 13.0b1).

Instalējot paketi ar Pipenv, notiek divas lietas. Pirmkārt, Pipenv pārbaudīs, vai šim projekta direktorijam jau ir izveidota virtuālā vide. Ja jā, Pipenv instalēs pakotni esošajā virtuālajā vidē. Ja nē, Pipenv izveidos virtuālo vidi, kurā tiks izmantots tas pats Python izdevums, kas izmantots Pipenv darbināšanai. Ņemiet vērā, ka virtuālā vide ir izveidots pašā projekta direktorijā; tas ir izveidots direktorijā, kuru jūsu lietotāja profilā pārvalda Pipenv.

Otrkārt, Pipenv instalēs pieprasītās pakotnes virtuālajā vidē. Kad instalēšana būs pabeigta, Pipenv ziņos par visu paveikto, ieskaitot ceļu uz virtuālo vidi, ja tas būtu jāizveido.

Jums parasti nav jāzina ceļš uz virtuālo vidi, ko rada Pipenv. Lai aktivizētu vidi, vienkārši dodieties uz sava projekta direktoriju un izmantojietpipenv apvalks lai palaistu jaunu čaulas sesiju vai izmantotupipenv palaist tieši izpildīt komandu. Piemēram, izmantojietpipenv palaist mypy lai palaistu komandrindas rīka versiju mypy (pieņemot mypy rīks tika instalēts virtuālajā vidē), vai pipenv palaist pitonu -m lai palaistu virtuālajā vidē pieejamo Python moduli.

Pipenv un lockfiles

Skatieties direktorijā, kad esat instalējis paketes ar Pipenv, un jūs redzēsiet divus failus, Pipfile un Pipfile.lock. Abus automātiski ģenerē Pipenv, un tos nevajadzētu rediģēt tieši, jo tie raksturo pakotņu stāvokli projektā.

Pipfile ir vienkāršākais no abiem. Tajā ir tikai uzskaitītas projektam nepieciešamās paketes, no kurienes tās tiek instalētas (noklusējums ir PyPI) un kura Python versija ir nepieciešama, lai visu palaistu. Pipfile.lock ir sarežģītāka. Tajā ir uzskaitīta katra pakete kopā ar informāciju par versiju un SHA-256 jaukumiem, kas ģenerēti no paketes. Sajaukšana tiek izmantota, lai nodrošinātu instalēto pakotņu atbilstību precīzi kas ir norādīts - ne tikai versijas numurs, bet arī iegūtais saturs.

Strādājot ar projektu, kura pakotņu pārvaldībai izmanto Pipenv, vēlaties pievienot Pipfile un Pipfile.lock failus projekta versiju vadības repozitorijā. Visas izmaiņas, kas veiktas jūsu projekta paketēs, savukārt mainīs šos failus, tāpēc šīm izmaiņām jābūt izsekotām un versijām.

Izmantojiet Pipenv projektu

Ja lejupielādējat avota repozitoriju projektam, kas pakotņu pārvaldībai izmanto Pipenv, viss, kas jums jādara, ir izpakot repozitorija saturu direktorijā un palaist pipenv instalēt (nav nepieciešami pakešu nosaukumi). Pipenv lasīs Pipfile un Pipfile.lock failus projektam, izveidojiet virtuālo vidi un pēc vajadzības instalējiet visas atkarības.

Visbeidzot, ja vēlaties izmantot Pipenv, lai pārvaldītu projektu, kurā pašlaik tiek izmantots prasības.txt failu, vienkārši dodieties uz projekta direktoriju un palaidiet pipenv instalēt. Pipenv atklāsprasības.txt (vai arī jūs varat izmantot -r karogu, lai uz to norādītu) un visas prasības migrē uz a Pipfile.

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