Programiranje

Python virtualenv in venv dela in ne sme

Eden največjih privlačitev Pythona je njegov obsežen ekosistem tretjih paketov. Če želite opraviti nalogo - pretvorba oblike datoteke, strganje in prestrukturiranje spletnih strani, linearna regresija, če želite, obstaja verjetnost, da bo eden ali več paketov v indeksu paketov Python izpolnil vaše potrebe.

Težji del je upravljanje kopičenja paketov v določeni namestitvi Python. Preveč enostavno je nepremišljeno namestiti na desetine paketov, sčasoma pa se konča s Pythonovim okoljem, polnim konfliktov med starejšimi in novejšimi različicami orodij, zaradi česar je delo težje, kot je treba.

Python je opremljen z avtomatiziranim sistemom za ohranjanje lokalnega nabora paketov za določen projekt Python. Navidezna okolja - z dovoljenjem virtualenv orodje v Python 2 in venv v Pythonu 3 - se lahko uporablja za ustvarjanje ločenega, izoliranega primerka izvajalnega okolja Pythona za projekt z lastnim dopolnilom paketov.

V tem članku se bomo sprehodili med nekaterimi najpogostejšimi napakami, ki jih ljudje naredijo, in jim podležejo pri delu z virtualnimi okolji v Pythonu.

Uporabljajte navidezna okolja Python

Prva pogosta napaka, s katero se naredijo programerji virtualenv alivenv je, da se preprosto ne obremenjujem s tem. Če je vse, kar počnete, samo hiter in umazan skript ena malenkost, zakaj bi se sploh trudil z vzpostavitvijo virtualnega okolja?

Težava je v tem, da se ta "ena malenkost" pogosto izkaže za veliko, veliko več. Ko bo vaše obvladovanje Pythona naraščalo, boste na koncu neizogibno povlekli več neodvisnih modulov, da boste opravili bolj dodelano delo. Še več, vse težje se boste spopadali z odvisnostmi od starejših različic paketov, za reševanje katerih je bilo ustvarjeno navidezno okolje.

Nekateri si ob uporabi tudi nagubajo nos virtualenv alivenv ker je vsako navidezno okolje lastna majhna kopija izvajalnega okolja Pythona, ki zavzame približno 25 MB. Toda prostor na disku je dandanes smešno poceni in odstranjevanje navideznega okolja je tako blaženo preprosto kot brisanje njegovega imenika (brez stranskih učinkov). Če imate več nalog, ki imajo skupen nabor paketov, lahko za oba vedno uporabite isto navidezno okolje.

Uporabite virtualenvwrapper za upravljanje navideznih okolij Python

Eden od načinov, kako narediti virtualna okolja manj obremenjujoča, je uporabavirtualenvwrapper. To orodje vam omogoča upravljanje vseh navideznih okolij v vašem delovnem prostoru iz ene same centralne aplikacije ukazne vrstice.

Nasvet glede ustvarjanja navideznega okolja: Ne poimenujte imenika navideznega okoljavenv—Ali, kar zadeva, ime katerega koli drugega paketa, ki ga želite uporabiti v navideznem okolju. To ima lahko pozneje nepredvidljive učinke na uvoz. Uporabite ime, ki nedvoumno opisuje vaš projekt.

Datotek projektov ne postavljajte v navidezno okolje Python

Ko nastavite navidezno okolje, imenik, v katerem živi, ​​ne bi smel vsebovati ničesar drugega kot samo navidezno okolje. Vaš projekt spada v svoje ločeno drevo imenikov. Za to obstaja veliko dobrih razlogov:

  • V vašem drevesu imenikov projektov je morda dogovor o poimenovanju, ki trči z elementi navideznega okolja.
  • Enostaven način odstranjevanja navideznega okolja je brisanje imenika. Mešanje projektnih datotek z navideznim okoljem pomeni, da morate najprej razstaviti obe datoteki.
  • Več projektov lahko uporablja isto navidezno okolje.

Eden od načinov organiziranja stvari bi bil ustvariti imenik na najvišji ravni, ki vsebuje različna navidezna okolja, in drugi imenik na najvišji ravni, ki vsebuje projekte. Dokler sta oba ločena, je to pomembno.

Ne pozabite aktivirati svojega navideznega okolja Python

Druga pogosta napaka, ki jo ljudje naredijo z virtualnimi okolji, je, da jih pozabijo aktivirati ali ne aktivirajo pravega.

Preden lahko navidezno okolje uporabimo v določeni seji lupine, mora biti aktivirano, s pomočjo skripta z imenom aktivirati v navideznem okolju Skripte imenik. Po aktiviranju se navidezno okolje obravnava kot privzeti primerek Pythona, dokler ga ne deaktivirate (z zagonom datoteke izključite ukaz).

Ta korak lahko preprosto pozabite sprva, ker je to navada, ki si jo je treba pridobiti, in ker je skript za aktivacijo en nivo nižje v imeniku navideznega okolja. Nekaj ​​trikov je tukaj prav:

  1. Ustvarite bližnjice do skriptov za aktiviranje / deaktiviranje v korenskem imeniku vašega projekta. Bližnjice lahko poimenujete na preprost način deluje in gluh da bodo manj neprijetni za tipkanje.
  2. Za projekte, pri katerih delate iz IDE in ne iz ukazne vrstice, ustvarite zaganjalnik projektov - paketno datoteko ali skript lupine - za zadevno aplikacijo Python. Tako lahko pokličete aktivacijski skript in nato zaženete svoj skript. Običajno vam po zagonu ni treba deaktivirati okolja skripta, ker se bo seja tako ali tako sama končala.

Ta zadnji trik poudarja pomembno točko o aktivacijah navideznega okolja: Veljajo samo za sejo okolja, v kateri se izvajajo. Če na primer zaženete dve seji ukazne vrstice in v eni aktivirate navidezno okolje, bo druga seja ukazne vrstice uporabila sistemska privzeta namestitev Pythona, ne navidezno okolje. Ne aktivirate navideznega okolja za sistem kot celota, vendar samo za določeno sejo.

Ne uporabljajte>= za pripenjanje različice paketa v navideznem okolju Python

Ta nasvet je uporaben tudi zunaj navideznih okolij. Ko imate aplikacijo z zahteve.txt datoteko, morate določiti pakete z natančno številka različice. Recimo mypackage == 2.2, ne moj paket> = 2.2.

Evo zakaj. Eden glavnih razlogov za uporabo navideznega okolja je zagotoviti uporabo določenih različic paketov. Če uporabljate >= namesto ==, ni nobenega zagotovila, da boste vi ali kdo drug končali z isto različico, če bo treba za ta projekt obnoviti okolje. Uporabite natančno številko različice. Ti, prihodnost in vsi, ki pridejo za tabo, se ti bodo zahvalili.

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