Programmēšana

Virtualenv un venv: paskaidrotas virtuālās Python vides

Starp visiem iemesliem, kāpēc Python ir populārs ar izstrādātājiem, viens no lielākajiem ir tā plašā un arvien paplašinātā trešo pušu pakotņu izvēle. Ērti rīku komplekti, sākot no datu ievadīšanas un formatēšanas līdz ātrgaitas matemātikai un mašīnmācībai, ir tikai importēt vai pip instalēt prom.

Bet kas notiek, ja šīs paketes savā starpā nedarbojas jauki? Ko jūs darāt, ja dažādiem Python projektiem ir nepieciešamas konkurējošas vai nesaderīgas viena un tā paša papildinājuma versijas? Tur sāk darboties virtuālās Python vides.

Jūs varat izveidot un strādāt ar virtuālajām vidēm gan Python 2, gan Python 3, lai gan rīki ir atšķirīgi. Virtualenv ir izvēlēts rīks Python 2, savukārt venv veic uzdevumu Python 3.

Kas ir Python virtuālās vides?

Virtuālā vide ir veids, kā iegūt vairākus paralēlus Python tulka gadījumus, katram no kuriem ir dažādas pakotņu kopas un dažādas konfigurācijas. Katrā virtuālajā vidē ir atsevišķa Python tulka kopija, ieskaitot tā atbalsta utilītu kopijas.

Katrā virtuālajā vidē instalētās paketes ir redzamas tikai šajā virtuālajā vidē, un neviena cita. Pat lielas, sarežģītas paketes ar no platformas atkarīgiem bināriem failiem var savstarpēji atkailināt virtuālajā vidē.

Ir daži virtuālās vides bieži lietojuma gadījumi:

  1. Jūs izstrādājat vairākus projektus, kas ir atkarīgi no vienas un tās pašas pakotnes dažādām versijām, vai arī jums ir projekts, kas nosaukumvietas sadursmes dēļ ir jāizolē no noteiktiem pakotnēm. Šis ir visizplatītākais lietošanas gadījums.
  2. Jūs strādājat Python vidē, kurā nevarat modificēt vietņu pakotņu direktoriju. Tas var notikt tāpēc, ka strādājat ļoti kontrolētā vidē, piemēram, pārvaldītā mitināšanā, vai serverī, kur tulku (vai tajā izmantoto pakotņu) izvēli nevar mainīt ražošanas prasību dēļ.
  3. Jūs vēlaties eksperimentēt ar konkrētu pakotņu kombināciju ļoti kontrolētos apstākļos, piemēram, lai pārbaudītu savstarpēju savietojamību vai atgriezenisku savietojamību.
  4. Jūs vēlaties palaist Python tulka “pamata” versiju sistēmā, kurā nav trešo pušu pakotņu, un pēc vajadzības katram atsevišķam projektam instalējiet tikai trešo pušu paketes.

Nekas nesaka, ka nevar vienkārši izpakot Python bibliotēku projekta apakšmapē un izmantot to šādā veidā. Tāpat jūs varētu lejupielādēt atsevišķu Python tulka kopiju, izsaiņot to mapē un izmantot, lai palaistu tai veltītos skriptus un pakotnes.

Bet šādu bruģētu projektu vadīšana drīz kļūst sarežģīta. Tikai tā šķiet sākumā to ir vieglāk izdarīt. Darbs ar pakotnēm, kurām ir bināri komponenti vai kuras balstās uz sarežģītām trešo personu atkarībām, var būt murgs. Labākais ilgtermiņa risinājums ir Python vietējo mehānismu izmantošana virtuālās vides izveidošanai un darbam ar to.

Virtuālās vides Python 3

Virtualenv ir izrādījies neaizstājams neskaitāmiem Python izstrādātājiem, taču tas nav daļa no Python standarta bibliotēkas. Python 3 ir vietējais rīks virtuālajām vidēm, kas visu procesu padara diezgan vienkāršu.

Saistītais video: kā Python atvieglo programmēšanu

Ideāli piemērots IT, Python vienkāršo daudzu veidu darbu, sākot no sistēmas automatizācijas līdz darbam tādās modernās jomās kā mašīnmācīšanās.

Izveidojiet virtuālo vidi

Lai konkrētā direktorijā izveidotu virtuālo vidi, ierakstiet:

python3 -m venv / path / to / direktoriju

(Ņemiet vērā, ka jūs varat vienkārši izmantotpitons tā vietā pitons3 ja jūsu sistēma atpazīst pitons kā noklusējuma Python 3 tulku.)

Viss virtuālās vides iestatīšanas process var ilgt minūti vai divas. Kad tas ir pabeigts, jums vajadzētu būt direktorijai ar dažiem apakšdirektorijiem. Vissvarīgākā apakšdirektorija iratkritumu tvertne uz Unix vaiSkripti operētājsistēmā Windows, kur atradīsit virtuālās vides Python tulka kopiju kopā ar tās utilītprogrammām.

Ņemiet vērā, ka, tā kā katrā virtuālajā vidē ir sava Python tulka kopija, tā var būt diezgan liela. Gan Windows, gan Linux virtuālā vide Python 3.6 patērēs apmēram 23 MB diska vietas.

Aktivizējiet virtuālo vidi

Lai varētu izmantot šo virtuālo vidi, jums tas ir skaidri jādara aktivizēt to. Aktivizēšana padara virtuālo vidi par noklusējuma Python tulku sesijas laikā.

Virtuālās vides aktivizēšanai būs jāizmanto atšķirīga sintakse atkarībā no izmantotās operētājsistēmas un komandu čaulas.

  • Unix vai MacOS, izmantojot bash apvalku: avots / ceļš / uz / venv / bin / aktivizēt
  • Unix vai MacOS, izmantojot csh apvalku: avots /path/to/venv/bin/activate.csh
  • Unix vai MacOS, izmantojot zivju čaumalu: avots /path/to/venv/bin/activate.fish
  • Operētājsistēmā Windows, izmantojot komandu uzvedni:ceļš \ to \ venv \ Scripts \ activ.bat
  • Operētājsistēmā Windows, izmantojot PowerShell: ceļš \ to \ venv \ Scripts \ Activate.ps1

Ņemiet vērā, ka aktivētā vide darbojas tikai kontekstā, kurā tas tika aktivizēts. Piemēram, ja palaižat divus PowerShell gadījumus, A un B, un virtuālo vidi aktivizējat tikai instancē A, šī vide attieksies tikai uz A. Tas neattiektos nekur citur.

Konfigurējiet un izmantojiet virtuālo vidi

Kad esat aktivizējis jauno virtuālo vidi, varat izmantot pakotņu pārvaldnieku, lai pievienotu un mainītu paketes tai. Pipsu atradīsit Skripti virtuālās vides apakšdirektorija sistēmā Windows un atkritumu tvertne Unix OS apakšdirektorijs.

Ja jūs jau esat iepazinies ar pipa darbību, jūs esat iestatīts. Tam vajadzētu būt vienādam virtuālajā vidē. Vienkārši pārliecinieties, vai izmantojat pip instanci, kas pārvalda paketes virtuālajai videi kontekstā, kurā tā tika aktivizēta, piemēram, bash sesiju vai Windows CLI / PowerShell sesiju. Ja vēlaties pārbaudīt, vai izmantojat pareizo pip un pareizo virtuālo vidi, ierakstiet pip -V un pārbaudiet, vai tā parādītais ceļš norāda uz jūsu virtuālās vides apakšdirektoriju.

Lai izmantotu izveidoto virtuālo vidi Python skriptu palaišanai, vienkārši izsauciet Python no komandrindas kontekstā, kurā to aktivizējāt.

Virtuālās vides deaktivizēšana

Kad esat pabeidzis virtuālās vides izmantošanu, varat vienkārši pārtraukt sesiju tajā vietā, kur to izmantojāt. Ja vēlaties turpināt strādāt vidē, bet tā vietā izmantojiet noklusējuma Python tulku, ierakstiet deaktivizēt pēc uzvednes. Windows lietotājiem komandrindā ir jāpalaiž deaktivizēt.sikspārnis no Skripti apakšdirektoriju, taču Unix lietotāji un Windows lietotāji, kas darbojas ar PowerShell, var vienkārši ierakstīt deaktivizēt jebkurā direktorijā.

Virtuālās vides noņemšana

Virtuālās vides ir pašpietiekamas. Kad virtuālā vide jums vairs nav nepieciešama, varat vienkārši izdzēst tās direktoriju.

Virtuālās vides Python 2

Izmantojot Python 2, virtuālās vides nav valodas dzimtā iezīme. Tā vietā jums jāinstalē trešo pušu bibliotēkas, lai izveidotu un pārvaldītu virtuālās vides.

Vispopulārākais un plaši izmantotais no šiem projektiem ir virtualenv, kas nodarbojas ar direktoriju struktūras izveidi un nepieciešamo failu kopēšanu virtuālajā vidē. Lai instalētu virtualenv, vienkārši izmantojiet PIP instalēt virtualenv. Lai ar to izveidotu virtuālās vides direktoriju, ierakstiet virtualenv / path / to / direktoriju. Virtuālās vides aktivizēšana un deaktivizēšana darbojas tāpat kā virtuālajām vidēm Python 3 (skat. Iepriekš).

Virtuālās vides izmantošana ar Jupyter piezīmjdatoriem

Ja izmantojat Jupyter piezīmjdatorus (jeb IPython piezīmjdatorus) un jums jau ir instalēts Jupyter visā pasaulē, izveidojiet savu virtuālo vidi un aktivizējiet to. Pēc tam no savas virtuālās vides direktorija palaidiet pip instalēt ipykernel pievienot nepieciešamos komponentus IPython. Visbeidzot, palaidiet ipython kodola instalēšana - lietotājs - nosaukums =, kur projekta_nosaukums ir nosaukums, kuru vēlaties saistīt ar konkrēto projektu. No turienes jums vajadzētu būt iespējai palaist Jupyter un pārslēgties uz IPython kodolu, kuru instalējāt virtuālajā vidē.

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