Python

Kako ustvariti in upravljati navidezna okolja Python

Kako ustvariti in upravljati navidezna okolja Python
Precej pogosto je videti, da razvijalci Pythona nameščajo in nadgrajujejo pakete iz standardnih in nestandardnih virov za razvoj aplikacij. Razlogi so lahko od uporabe novejše različice modula do uporabe določene različice, če pride do regresije.

Te zahteve in primeri uporabe so lahko težavni, če različne aplikacije zahtevajo različne različice iste knjižnice. Na srečo Python ponuja robustno rešitev za izolacijo razvojnih okolij z uporabo navideznih okolij.

Kaj je navidezno okolje Python?

Navidezno okolje Python je samostojno drevo imenikov, ki vsebuje določeno namestitev Pythona skupaj z vsemi standardnimi knjižnicami. Aplikacije, ki zahtevajo določeno različico knjižnice, je mogoče v teh navideznih okoljih izolirati, ne da bi onesnaževale sistem ali druge izvedbe Pythona. Vsako navidezno okolje je ločen peskovnik, zato lahko ustvarite toliko navideznih okolij, kot želite.

Ustvarjanje in upravljanje navideznih okolij

Če želite ustvariti navidezna okolja v Ubuntuju, najprej namestite zahtevani paket odvisnosti z zagonom ukaza:

$ sudo apt namestite python3-venv

Zdaj lahko ustvarite navidezna okolja z zagonom ukaza:

$ python3 -m venv myenv

Z zagonom zgornjega ukaza boste v domačem imeniku ustvarili navidezno okolje z imenom »myenv«. Če želite uporabiti katero koli drugo različico Pythona, lahko zgoraj nadomestite “python3” s polno potjo do lokacije vašega nadomestnega binarnega Pythona.

Če želite aktivirati zgoraj ustvarjeno okolje po meri, zaženite ukaz:

$ source myenv / bin / activate

Ko je navidezno okolje aktivirano, se bo poziv lupine spremenil, da bo odražal trenutno navidezno okolje, ki ga uporabljate. Če zaženete “sys.path ”v razlagalniku Python, lahko vidite, da navidezno okolje deluje pravilno. Python bo zdaj iskal pakete v okolju po meri, ki ste ga pravkar ustvarili.

Če vaš ukaz lupine ne prikaže imena navideznega okolja kot predpono, bo katera koli datoteka Python, ki jo zaženete, namesto tega uporabila sistemski Python. Pred zagonom datoteke v vašem okolju po meri je torej treba pridobiti navidezno okolje.

Navidezno okolje lahko deaktivirate z zagonom ukaza:

$ deaktivira

Vsako navidezno okolje Python vključuje »pyvenv.cfg "s ključem" include-system-site-paketi ", ki je privzeto nastavljen na" false ". Ta ključ pove navideznemu okolju, ali naj uporablja sistemske pakete spletnih mest ali ne. Če je nastavljeno na »true«, bo Python v navideznem okolju pregledoval sistemske pakete, če paketa v navideznem okolju ne bo mogoče najti. Vse sistemsko nameščene pakete bo omogočil tudi uvoz v navidezno okolje.

Če želite izbrisati navidezno okolje, morate samo izbrisati imenik navideznega okolja in ga ne bo več.

Virtulenv je mogoče ustvariti in shraniti na zunanjih pogonih USB. Pogon USB boste morali formatirati v datotečnem sistemu NTFS ali EXT. Datotečni sistem FAT32 ne podpira simbolnih povezav, kar je zahteva za delovanje navideznih okolij.

Uporaba Pip Package Manager za namestitev paketov znotraj navideznega okolja

Znotraj navideznega okolja lahko za namestitev, nadgradnjo in odstranitev paketov uporabite upravitelja paketov pip. Paket lahko nadgradite ali nadgradite z določitvijo določene številke različice.

Paket lahko namestite s pomočjo pip z zagonom ukaza (nadomestite pygame z želenim imenom paketa):

$ pip namestite pygame

Tu lahko najdete repozitorij pip paketov, ki ga lahko iščete.

Če želite odstraniti paket, uporabite ukaz:

$ pip uninstall pygame

Če si želite ogledati vse različice paketa, zaženite ukaz:

$ pip namesti pygame ==

Če želite znižati ali nadgraditi na določeno različico, uporabite ukaz (zamenjajte »1.9.5 "z želeno številko različice):

$ pip namesti pygame == 1.9.5

Če želite paket nadgraditi na najnovejšo različico, zaženite ukaz:

$ pip install --upgrade pygame

Če si želite ogledati vse pakete, nameščene v navideznem okolju, zaženite ukaz:

$ pip seznam

Če želite shraniti seznam nameščenih paketov znotraj virtualenv, zaženite ukaz:

$ pip freeze> zahteve.txt

Uporabite lahko zgoraj “zahteve.txt ”za množično namestitev paketov. Eden od primerov je podvojiti obstoječe okolje z namestitvijo vseh paketov iz nič. Če želite pakete pip namestiti v velikem obsegu, zaženite ukaz:

$ pip install -r zahteve.txt

Uporaba navideznih okolij Python z aplikacijami, ki niso Python

Aplikacije, napisane v drugih programskih jezikih, lahko v navideznih okoljih Python stisnete v varno okolje, če pip ali kateri koli drug upravitelj paketov Python ponuja binarne datoteke in pakete za te nadomestne programske jezike / okvire.

Tu je majhen primer, ki pojasnjuje namestitev Node.js v navideznem okolju Python. Zaženite naslednje ukaze enega za drugim:

$ python3 -m venv my_node_env
$ source my_node_env / bin / activate
$ pip namestitveno kolo
$ pip namestite nodeenv
$ nodeenv -p
$ nodeenv --verzija
$ vozlišče --verzija

Ko končate, boste imeli popolnoma izolirano vozlišče.js okolju. Za različna Node lahko ustvarite toliko navideznih okolij, kot želite.js. Paketi, nameščeni prek upravitelja paketov npm, bodo omejeni samo na aktivirano navidezno okolje.

Zaključek

Ustvarjanje navideznega okolja Python je odličen način za zadrževanje razvojnih okolij. Vsako navidezno okolje ima svoj binarni Python in svoj neodvisen nabor paketov. Razvoj več aplikacij Python v istem sistemu lahko hitro onesnaži vaš dom in korenski imenik, navidezna okolja pa jih tako enostavno vzdržujejo.

Kako spremeniti miškin kazalec in velikost, barvo in shemo kazalca v sistemu Windows 10
Kazalec miške in kazalec v operacijskem sistemu Windows 10 sta zelo pomembna vidika operacijskega sistema. To lahko rečemo tudi za druge operacijske s...
Brezplačni in odprtokodni igralni mehanizmi za razvoj iger Linux
Ta članek bo zajemal seznam brezplačnih in odprtokodnih igralnih mehanizmov, ki jih je mogoče uporabiti za razvoj 2D in 3D iger v Linuxu. Obstaja veli...
Vadnica Shadow of the Tomb Raider za Linux
Shadow of the Tomb Raider je dvanajsti dodatek k seriji Tomb Raider - franšiza akcijsko-pustolovskih iger, ki jo je ustvaril Eidos Montreal. Kritiki i...