Programavimas

„Virtualenv“ ir „venv“: paaiškintos „Python“ virtualios aplinkos

Iš visų priežasčių, dėl kurių „Python“ patiko kūrėjams, viena didžiausių yra platus ir nuolat besiplečiantis trečiųjų šalių paketų pasirinkimas. Patogūs įrankių rinkiniai viskam, pradedant duomenų įvedimu ir formatavimu, iki greito matematikos ir mašininio mokymosi, yra tik importas arba pip įdiegti toli.

Bet kas nutinka, kai tie paketai nėra malonūs tarpusavyje? Ką darote, kai skirtingiems „Python“ projektams reikalingos konkuruojančios arba nesuderinamos tų pačių priedų versijos? Štai kur atsiranda virtualios „Python“ aplinkos.

Galite kurti ir dirbti su virtualiomis aplinkomis tiek „Python 2“, tiek „Python 3“, nors įrankiai yra skirtingi. „Virtualenv“ yra „Python 2“ pasirinktas įrankis, o „venv“ atlieka užduotį „Python 3“.

Kas yra „Python“ virtualios aplinkos?

Virtuali aplinka yra būdas turėti kelis lygiagrečius „Python“ vertėjo egzempliorius, kurių kiekvienas turi skirtingus paketų rinkinius ir skirtingas konfigūracijas. Kiekvienoje virtualioje aplinkoje yra atskira „Python“ vertėjo kopija, įskaitant jos palaikymo paslaugų kopijas.

Kiekvienoje virtualioje aplinkoje įdiegti paketai matomi tik toje virtualioje aplinkoje. Net didelius, sudėtingus paketus su nuo platformos priklausančiais dvejetainiais failais virtualioje aplinkoje galima atskirti.

Yra keli įprasti virtualios aplinkos naudojimo atvejai:

  1. Kuriate kelis projektus, kurie priklauso nuo skirtingų tų pačių paketų versijų, arba turite projektą, kuris turi būti izoliuotas nuo tam tikrų paketų dėl vardų srities susidūrimo. Tai yra pats standartiškiausias naudojimo atvejis.
  2. Dirbate „Python“ aplinkoje, kur negalite modifikuoti „site-package“ katalogo. Taip gali nutikti todėl, kad dirbate labai kontroliuojamoje aplinkoje, pvz., Valdomame priegloboje, arba serveryje, kuriame dėl gamybos reikalavimų negalima pakeisti vertėjo žodžio (ar jame naudojamų paketų).
  3. Norite išbandyti konkretų paketų derinį labai kontroliuojamomis aplinkybėmis, pavyzdžiui, išbandyti kryžminį arba atgalinį suderinamumą.
  4. Sistemoje, kurioje nėra trečiųjų šalių paketų, norite paleisti „Python“ vertėjo „bazinę“ versiją ir kiekvienam projektui prireikus įdiekite tik trečiųjų šalių paketus.

Niekas nesako, kad negalima paprasčiausiai išpakuoti „Python“ bibliotekos į projekto poaplankį ir taip jį naudoti. Taip pat galite atsisiųsti atskirą „Python“ vertėjo kopiją, išpakuoti ją į aplanką ir naudoti jai skirtus scenarijus ir paketus.

Tačiau greitai valdyti tokius akmenimis grįstus projektus tampa sunku. Tik tai atrodo iš pradžių lengviau tai padaryti. Darbas su paketais, turinčiais dvejetainius komponentus arba pagrįstus sudėtingomis trečiųjų šalių priklausomybėmis, gali būti košmaras. Geriausias ilgalaikis sprendimas yra „Python“ vietinių mechanizmų naudojimas kuriant ir dirbant su virtualiomis aplinkomis.

Virtuali aplinka „Python 3“

„Virtualenv“ pasirodė nepakeičiama daugeliui „Python“ kūrėjų, tačiau tai nėra standartinės „Python“ bibliotekos dalis. „Python 3“ turi įprastus įrankius, skirtus virtualioms aplinkoms, todėl visas procesas yra gana paprastas.

Susijęs vaizdo įrašas: Kaip „Python“ palengvina programavimą

Puikiai IT, „Python“ supaprastina daugybę rūšių darbų, pradedant sistemos automatizavimu ir baigiant darbais pažangiose srityse, tokiose kaip mašininis mokymasis.

Sukurkite virtualią aplinką

Norėdami sukurti virtualią aplinką nurodytame kataloge, įveskite:

python3 -m venv / path / to / katalogas

(Atkreipkite dėmesį, kad galite tiesiog naudotipitonas vietoj pitonas3 jei jūsų sistema atpažįsta pitonas kaip numatytąjį „Python 3“ vertėją.)

Visas virtualios aplinkos nustatymo procesas gali užtrukti minutę ar dvi. Kai jis bus baigtas, turėtumėte turėti katalogą su keliais pakatalogiais. Svarbiausias pakatalogis yrašiukšliadėžė „Unix“ arbaScenarijai sistemoje „Windows“, kur rasite virtualios aplinkos „Python“ vertėjo kopiją kartu su jos paslaugomis.

Atkreipkite dėmesį, kad kadangi kiekvienoje virtualioje aplinkoje yra sava „Python“ vertėjo kopija, ji gali būti gana didelė. Tiek „Windows“, tiek „Linux“ sistemose „Python 3.6“ virtuali aplinka sunaudos apie 23 MB disko vietos.

Suaktyvinkite virtualią aplinką

Kad galėtumėte naudoti šią virtualią aplinką, turite aiškiai tai padaryti suaktyvinti tai. Suaktyvinus virtuali aplinka tampa numatytuoju „Python“ vertėju sesijos metu.

Norėdami suaktyvinti virtualią aplinką, turėsite naudoti skirtingą sintaksę, priklausomai nuo to, kurią operacinę sistemą ir komandų apvalkalą naudojate.

  • „Unix“ ar „MacOS“ sistemose naudodami „bash“ apvalkalą: source / path / to / venv / bin / aktyvuoti
  • „Unix“ ar „MacOS“ sistemose naudodami „csh“ apvalkalą: šaltinis /path/to/venv/bin/activate.csh
  • „Unix“ arba „MacOS“ naudojant žuvies kiautą: šaltinis /path/to/venv/bin/activate.fish
  • „Windows“ sistemoje naudojant komandų eilutę:kelias \ į \ venv \ scenarijus \ activ.bat
  • „Windows“ naudojant „PowerShell“: kelias \ į \ venv \ Scripts \ Activate.ps1

Atkreipkite dėmesį, kad aktyvuota aplinka veikia tik tame kontekste, kuriame jis buvo suaktyvintas. Pvz., Jei paleidžiate du „PowerShell“ egzempliorius, A ir B, ir virtualią aplinką aktyvuojate tik egzemplioriuje A, ta aplinka bus taikoma tik A. Tai netaikoma niekur kitur.

Konfigūruokite ir naudokite virtualią aplinką

Suaktyvinę naują virtualią aplinką, galite naudoti „pip“ paketų tvarkytuvę, kad pridėtumėte ir pakeistumėte jos paketus. Pip rasite Scenarijai virtualiosios aplinkos pakatalogis sistemoje "Windows" ir šiukšliadėžė „Unix“ OS pakatalogis.

Jei jau esate susipažinę su „pip“ veikimu, esate pasirengę. Taip turėtų būti ir virtualioje aplinkoje. Tiesiog įsitikinkite, kad naudojate „pip“ egzempliorių, kuris valdo virtualiosios aplinkos paketus, kontekste, kuriame ji buvo suaktyvinta, pvz., „Bash“ sesiją arba „Windows CLI“ / „PowerShell“ sesiją. Jei norite patikrinti, ar naudojate tinkamą „pip“ ir tinkamą virtualią aplinką, įveskite pip -V ir patikrinkite, ar rodomas kelias nurodo į jūsų virtualios aplinkos pakatalogį.

Norėdami naudoti sukurtą virtualią aplinką „Python“ scenarijams paleisti, tiesiog iškvieskite „Python“ iš komandinės eilutės kontekste, kuriame jį suaktyvinote.

Išaktyvinti virtualią aplinką

Baigę naudoti virtualią aplinką, galite tiesiog nutraukti seansą ten, kur naudojote. Jei norite toliau dirbti aplinkoje, bet naudodami numatytąjį „Python“ vertėją, įveskite išjungti paraginus. „Windows“ vartotojai komandinėje eilutėje turi veikti deaktyvuoti.bat nuo Scenarijai pakatalogį, tačiau „Unix“ vartotojai ir „Windows“ vartotojai, valdantys „PowerShell“, gali tiesiog įvesti tekstą išjungti bet kuriame kataloge.

Virtualios aplinkos pašalinimas

Virtuali aplinka yra savarankiška. Kai jums nebereikia virtualios aplinkos, galite tiesiog ištrinti jos katalogą.

Virtuali aplinka „Python 2“

Naudojant „Python 2“, virtualios aplinkos nėra gimtoji kalbos ypatybė. Vietoj to, norėdami sukurti ir valdyti virtualią aplinką, turite įdiegti trečiųjų šalių bibliotekas.

Populiariausias ir plačiausiai naudojamas iš šių projektų yra virtualenv, kuris tvarko katalogų struktūrą ir kopijuoja reikalingus failus į virtualią aplinką. Norėdami įdiegti virtualenv, tiesiog naudokite pip įdiegti virtualenv. Norėdami sukurti virtualios aplinkos katalogą, įveskite virtualenv / kelias / į / katalogą. Virtualios aplinkos aktyvinimas ir išjungimas veikia taip pat, kaip ir „Python 3“ virtualiose aplinkose (žr. Aukščiau).

Virtualių aplinkų naudojimas su „Jupyter“ bloknotais

Jei naudojate „Jupyter“ bloknotus (dar žinomus kaip „IPython“ bloknotus) ir jau turite įdiegę „Jupyter“ sistemoje, sukurkite virtualią aplinką ir suaktyvinkite ją. Tada paleiskite iš savo virtualios aplinkos katalogo pip įdiegti ipykernel pridėti reikiamus komponentus „IPython“. Pagaliau bėk „ipython“ branduolio diegimas — vartotojo — vardas =, kur projekto_pavadinimas yra vardas, kurį norite susieti su konkrečiu projektu. Iš ten turėtumėte turėti galimybę paleisti „Jupyter“ ir pereiti prie „IPython“ branduolio, kurį įdiegėte virtualioje aplinkoje.

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