Programmēšana

Python virtualenv un venv do's un don'ts

Viens no lielākajiem Python izaicinājumiem ir tā plašā trešo pušu paku ekosistēma. Ja ir uzdevums, kuru vēlaties noņemt - faila formāta pārveidošana, tīmekļa lapu nokasīšana un pārstrukturēšana, lineāra regresija, jūs to nosaucat - izredzes ir tādas, ka viena vai vairākas paketes Python pakešu rādītājā aizpildīs jūsu vajadzības.

Grūtākā daļa ir pakotņu uzkrāšanas pārvaldīšana noteiktā Python instalācijā. Pārāk viegli ir nepārdomāti instalēt desmitiem paku un ar laiku iegūt Python vidi, kas ir saistīta ar konfliktiem starp vecāku un jaunāku rīku versijām, padarot darbu grūtāku, nekā tam vajadzētu būt.

Python nāk ar automatizētu sistēmu, lai paketes kopa tiktu saglabāta lokāli attiecīgajam Python projektam. Virtuālā vide - pieklājīgi no virtualenv rīks Python 2 un venv Python 3 - var izmantot, lai izveidotu atsevišķu, izolētu Python izpildlaika instanci projektam ar savu pakotņu papildinājumu.

Šajā rakstā mēs iepazīsimies ar dažām biežāk pieļautajām kļūdām, kuras cilvēki pieļauj - un pieļautās kļūdas, strādājot ar virtuālo vidi Python.

Izmantojiet virtuālās Python vides

Pirmā izplatītā kļūda, ko Python programmētāji pieļauj virtualenv vaivenv ir vienkārši neuztraukties ar to. Ja viss, ko jūs darāt, ir ātri un netīri izveidots skripts viena maza lieta, kāpēc vispār jāpievēršas virtuālās vides ierīkošanai?

Problēmas ir tādas, ka “viena maza lieta” bieži izrādās daudz, daudz vairāk. Pieaugot Python meistarībai, jūs neizbēgami iegūsit vairāk trešo pušu moduļu, lai veiktu sarežģītāku darbu. Turklāt jums būs arvien grūtāk tikt galā ar atkarību no iepriekšējām pakotņu versijām - viena no galvenajām virtuālās vides problēmām tika izveidota, lai atrisinātu.

Daži cilvēki arī kruncina degunu, lietojot virtualenv vaivenv jo katra virtuālā vide ir sava maza Python izpildlaika kopija, kas aizņem apmēram 25 MB. Bet šajās dienās diska vieta ir smieklīgi lēta, un virtuālās vides noņemšana ir tikpat svētlaimīgi kā tās direktorija dzēšana (bez blakusparādībām). Turklāt, ja jums ir vairāki uzdevumi, kuriem ir kopīgs pakotņu kopums, abiem vienmēr varat izmantot vienu un to pašu virtuālo vidi.

Izmantojiet virtualenvwrapper, lai pārvaldītu virtuālās Python vides

Viens no veidiem, kā padarīt virtuālo vidi mazāk apgrūtinošu, ir izmantošanavirtualenvwrapper. Šis rīks ļauj jums pārvaldīt visas darbvietas virtuālās vides no vienas centrālās komandrindas lietotnes.

Īss padoms par virtuālās vides izveidi: nenosauciet savas virtuālās vides direktorijuvenvVai šajā ziņā jebkuras citas paketes nosaukums, kuru vēlaties izmantot virtuālajā vidē. Tam vēlāk var būt neparedzama ietekme uz importu. Izmantojiet nosaukumu, kas nepārprotami raksturo jūsu projektu.

Nenovietojiet projekta failus Python virtuālajā vidē

Uzstādot virtuālo vidi, direktorija, kurā tā dzīvo, nav domāta tikai virtuālajai videi. Jūsu projekts pieder atsevišķam direktoriju kokam. Tam ir daudz labu iemeslu:

  • Iespējams, ka jūsu projekta direktoriju kokā ir nosaukšanas kārtība, kas saduras ar virtuālās vides elementiem.
  • Vienkāršais veids, kā noņemt virtuālo vidi, ir direktorija dzēšana. Projekta failu sajaukšana ar virtuālo vidi nozīmē, ka vispirms ir jāatšķir abi.
  • Vairāki projekti var izmantot vienu un to pašu virtuālo vidi.

Viens no veidiem, kā organizēt lietas, ir izveidot augstākā līmeņa direktoriju, kurā atrodas dažādas virtuālās vides, un citu, kas satur projektus, augšējā līmeņa direktoriju. Kamēr abi tiek turēti atsevišķi, tas ir svarīgi.

Neaizmirstiet aktivizēt virtuālo Python vidi

Vēl viena izplatīta kļūda, ko cilvēki pieļauj virtuālajā vidē, ir aizmiršana tās aktivizēt vai pareizās neaktivizēšana.

Lai virtuālo vidi varētu izmantot konkrētā čaulas sesijā, tam ir jābūt aktivizēts, ar nosaukumu skriptu aktivizēt virtuālajā vidē Skripti direktorijā. Pēc aktivizācijas virtuālā vide tiek uzskatīta par noklusēto Python gadījumu, līdz jūs to deaktivizējat (palaižot deaktivizēt komandu).

Sākumā ir viegli aizmirst šo soli gan tāpēc, ka tas ir jāiegūst ieradums, gan tāpēc, ka virtuālās vides direktorijā aktivizācijas skripts atrodas vienā līmenī. Šeit ir noderīgi pāris triki:

  1. Izveidojiet saīsnes uz aktivizācijas / deaktivizācijas skriptiem projekta saknes direktorijā. Šos īsinājumtaustiņus varat nosaukt kā vienkārši tēlot un deaktīvs lai padarītu tos mazāk nepatīkamus rakstīt.
  2. Projektiem, kurus strādājat no IDE, nevis komandrindas, attiecīgajai Python lietotnei izveidojiet projekta palaišanas programmu - pakešfailu vai čaulas skriptu. Tas ļauj izsaukt aktivizācijas skriptu un pēc tam palaist savu skriptu. Pēc palaišanas parasti nav jādeaktivizē skripta vide, jo sesija tik un tā tiks pārtraukta pati.

Šis pēdējais triks uzsver svarīgu punktu par virtuālās vides aktivizēšanu: tie attiecas tikai uz vides sesiju, kurā tie darbojas. Piemēram, ja palaižat divas komandrindas sesijas un vienā aktivizējat virtuālo vidi, otrā komandrindas sesija izmantos sistēmas noklusējuma Python instalācija, nevis virtuālā vide. Jūs neaktivizējat sistēmas virtuālo vidi kopumā, bet tikai konkrētajai sesijai.

Nelietot>= pakotnes versijas piespraušanai Python virtuālajā vidē

Šis padoms ir noderīgs arī ārpus virtuālās vides. Kad jums ir lietotne ar prasības.txt failu, jums jānorāda paketes ar precīzi versijas numurs. Saki mana pakete == 2.2, nevis mana pakete> = 2.2.

Lūk, kāpēc. Viens no galvenajiem virtuālās vides izmantošanas iemesliem ir nodrošināt konkrētu pakotņu versiju izmantošanu. Ja jūs izmantojat >= tā vietā ==, nav garantijas, ka jums vai kādam citam būs tāda pati versija, ja šim projektam būs jāatjauno vide. Izmantojiet precīzu versijas numuru. Jūs, nākotne jūs un tas, kurš nāk pēc jums, pateiks jums.

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