Programavimas

„Python virtualenv“ ir „venv do and donts“

Vienas didžiausių „Python“ bruožų yra jo ekspansiška trečiųjų šalių paketų ekosistema. Jei yra užduotis, kurią norite pašalinti - failo formato konvertavimas, tinklalapių nuskaitymas ir pertvarkymas, tiesinė regresija, įvardykite tai - tikimybė, kad viena ar daugiau „Python“ paketų indekso paketų užpildys jūsų poreikius.

Sunkiausia yra valdyti paketų kaupimą tam tikrame „Python“ diegime. Pernelyg lengva neapgalvotai įdiegti dešimtis paketų ir laikui bėgant sukurti „Python“ aplinką, apimančią konfliktus tarp senesnių ir naujesnių įrankių versijų, todėl darbas yra sunkesnis nei reikia.

„Python“ yra su automatizuota sistema, leidžiančia paketų rinkinį laikyti lokaliu tam tikram „Python“ projektui. Virtuali aplinka - mandagumo virtualenv įrankis Python 2 ir venv „Python 3“ - gali būti naudojamas sukurti atskirą, izoliuotą „Python“ vykdymo laiko egzempliorių projektui su savo paketų papildymu.

Šiame straipsnyje mes apžvelgsime keletą dažniausiai pasitaikančių klaidų, kurias daro žmonės ir kurių pasiduoda, dirbdami su virtualiomis „Python“ aplinkomis.

Naudokite virtualias „Python“ aplinkas

Pirmoji klaida, kurią daro „Python“ programuotojai virtualenv arbavenv yra tiesiog su tuo nesivarginti. Jei viskas, ką darote, yra greitai ir nešvariai parašytas scenarijus viena smulkmena, kam apskritai vargintis kuriant virtualią aplinką?

Bėda ta, kad „vienas mažas dalykas“ dažnai būna daug, daug daugiau. Didėjant jūsų „Python“ meistriškumui, jūs neišvengiamai sukursite daugiau trečiųjų šalių modulių, kad atliktumėte sudėtingesnį darbą. Be to, jums bus vis sunkiau susidoroti su priklausomybėmis nuo ankstesnių paketų versijų - tai buvo viena iš pagrindinių virtualios aplinkos problemų, kurios buvo išspręstos.

Kai kurie žmonės taip pat raukšlėja nosį naudodami virtualenv arbavenv nes kiekviena virtuali aplinka yra sava maža „Python“ vykdymo laiko kopija, užimanti apie 25 MB. Tačiau šiais laikais vietos diske yra juokingai pigu, o pašalinti virtualią aplinką yra taip palaimingai paprasta, kaip ištrinti jos katalogą (be šalutinių poveikių). Be to, jei turite kelias užduotis, turinčias bendrą paketų rinkinį, abiem visada galite naudoti tą pačią virtualią aplinką.

„Python“ virtualioms aplinkoms tvarkyti naudokite „virtualenvwrapper“

Vienas iš būdų padaryti virtualią aplinką mažiau naštą yra naudojimasvirtualenvwrapper. Šis įrankis leidžia valdyti visas virtualias darbo srities aplinkas iš vienos centrinės komandinės eilutės programos.

Patarimas virtualios aplinkos kūrimui: neįvardykite savo virtualios aplinkos katalogovenv- arba šiuo klausimu, bet kurio kito paketo, kurį norite naudoti virtualioje aplinkoje, pavadinimas. Vėliau tai gali turėti nenuspėjamą poveikį importui. Naudokite pavadinimą, kuris vienareikšmiškai apibūdina jūsų projektą.

Nedėkite projekto failų „Python“ virtualioje aplinkoje

Kai nustatote virtualią aplinką, katalogas, kuriame ji gyvena, nėra skirtas laikyti tik virtualią aplinką. Jūsų projektas priklauso atskiram katalogų medžiui. Tam yra daug gerų priežasčių:

  • Gali būti, kad jūsų projekto katalogo medyje yra pavadinimų tvarka, kuri susiduria su virtualios aplinkos elementais.
  • Lengvas būdas pašalinti virtualią aplinką yra ištrinti katalogą. Projekto failų susimaišymas su virtualia aplinka reiškia, kad pirmiausia turite juos išardyti.
  • Keli projektai gali naudoti tą pačią virtualią aplinką.

Vienas iš būdų organizuoti dalykus būtų sukurti aukščiausio lygio katalogą, kuriame būtų skirtingos virtualios aplinkos, ir kitą aukščiausio lygio katalogą, kuriame būtų projektai. Tol, kol abu yra laikomi atskirai, svarbu.

Nepamirškite suaktyvinti virtualios „Python“ aplinkos

Kita dažna klaida, kurią žmonės daro naudodamiesi virtualia aplinka, yra tai, kad pamiršta jas suaktyvinti arba neaktyvina tinkamos.

Kad virtuali aplinka galėtų būti naudojama tam tikroje apvalkalo sesijoje, ji turi būti suaktyvinta, scenarijaus pavadinimu suaktyvinti virtualioje aplinkoje Scenarijai kataloge. Suaktyvinus virtuali aplinka traktuojama kaip numatytasis „Python“ egzempliorius, kol ją išaktyvinsite (paleisdami išjungti komanda).

Iš pradžių lengva pamiršti šį žingsnį tiek dėl to, kad tai yra įprotis, kurį reikia įgyti, tiek dėl to, kad aktyvinimo scenarijus yra vienu lygiu žemyn virtualios aplinkos kataloge. Čia praverčia pora gudrybių:

  1. Sukurkite nuorodas į aktyvinimo / išjungimo scenarijus projekto šakniniame kataloge. Šiuos sparčiuosius klavišus galite pavadinti paprastu aktas ir neaktyvus kad būtų mažiau nemalonu rinkti.
  2. Projektams, kuriuos dirbate naudodami IDE, o ne komandinę eilutę, sukurkite atitinkamos „Python“ programos projekto paleidimo priemonę - paketinį failą arba apvalkalo scenarijų. Tai leidžia jums paskambinti aktyvinimo scenarijui, tada paleisti savo scenarijų. Paprastai nereikia paleisti scenarijaus aplinkos, nes sesija vis tiek nutrūks savaime.

Šis paskutinis triukas pabrėžia svarbų dalyką apie virtualios aplinkos aktyvavimą: jie taikomi tik aplinkos seansui, kuriame jie vykdomi. Pavyzdžiui, jei paleidžiate du komandinės eilutės seansus ir viename suaktyvinate virtualią aplinką, kita komandinės eilutės sesija naudos numatytasis sistemos „Python“ diegimas, o ne virtuali aplinka. Jūs neaktyvinate virtualios sistemos aplinkos kaip visas, bet tik konkrečiam seansui.

Nenaudokite>= paketo versijai prisegti „Python“ virtualioje aplinkoje

Šis patarimas yra naudingas ir už virtualios aplinkos. Kai turite programą su reikalavimai.txt failą, turėtumėte nurodyti paketus su tiksli versijos numeris. Sakyk mypackage == 2.2, ne mano paketas> = 2.2.

Štai kodėl. Viena pagrindinių virtualios aplinkos naudojimo priežasčių yra užtikrinti konkrečių paketų versijų naudojimą. Jei naudosite >= vietoj ==, nėra jokios garantijos, kad jūs (ar kas nors kitas) gaus tą pačią versiją, jei tame projekte reikės atkurti aplinką. Naudokite tikslų versijos numerį. Tu, ateitis, tu ir kas kitas ateis po tavęs, tau padėkos.

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