Ovim zahtjevima i slučajevima upotrebe može se teško upravljati kada različite aplikacije zahtijevaju različite verzije iste knjižnice. Srećom, Python nudi robusno rješenje za izoliranje razvojnih okruženja pomoću virtualnih okruženja.
Što je Python virtualno okruženje?
Python virtualno okruženje je samostalno stablo direktorija koje sadrži određenu instalaciju Pythona zajedno sa svim svojim standardnim knjižnicama. Aplikacije koje zahtijevaju određenu verziju knjižnice mogu se izolirati u tim virtualnim okruženjima bez zagađivanja sustava ili drugih implementacija Pythona. Svako virtualno okruženje zaseban je pješčanik, tako da možete stvoriti onoliko virtualnih okruženja koliko želite.
Stvaranje i upravljanje virtualnim okruženjima
Da biste stvorili virtualna okruženja u Ubuntuu, prvo instalirajte potreban paket ovisnosti pokretanjem naredbe:
$ sudo apt instalirati python3-venvSada možete stvoriti virtualna okruženja pokretanjem naredbe:
$ python3 -m venv myenvPokretanjem gornje naredbe stvorit ćete virtualno okruženje nazvano "myenv" u vašem kućnom direktoriju. Ako želite koristiti bilo koju drugu verziju Pythona, gornji "python3" možete zamijeniti punim putem do mjesta vašeg alternativnog bitova Pythona.
Da biste aktivirali prethodno kreirano prilagođeno okruženje, pokrenite naredbu:
$ source myenv / bin / activateJednom kada se aktivira virtualno okruženje, prompt ljuske promijenit će se kako bi odražavao trenutno virtualno okruženje koje koristite. Ako pokrenete “sys.path ”naredba unutar Python interpretera, možete vidjeti da virtualno okruženje radi ispravno. Python će sada tražiti pakete unutar prilagođenog okruženja koje ste upravo stvorili.
Ako vaša obavijest o ljusci ne prikazuje ime virtualnog okruženja kao prefiks, bilo koja Python datoteka koju pokrenete upotrebljavat će sistemski Python. Dakle, potrebno je izvor virtualnog okruženja prije pokretanja datoteke u vašem prilagođenom okruženju.
Virtualno okruženje možete deaktivirati pokretanjem naredbe:
$ deaktiviratiSvako Python virtualno okruženje uključuje „pyvenv.cfg ”koja ima ključ“ include-system-site-paketi ”koji je prema zadanim postavkama postavljen na“ false ”. Ovaj ključ govori virtualnom okruženju hoće li koristiti sistemske web-pakete ili ne. Ako se postavi na "true", Python će u virtualnom okruženju pregledavati sistemske pakete u slučaju da paket nije pronađen u virtualnom okruženju. Također će sve instalirane pakete sustava uvesti u virtualno okruženje.
Da biste izbrisali virtualno okruženje, samo trebate izbrisati direktorij virtualnog okruženja i više neće biti.
Moguće je stvoriti i pohraniti virtualenv na vanjskim USB pogonima. Morat ćete imati USB pogon formatiran u datotečnom sustavu NTFS ili EXT. Datotečni sustav FAT32 ne podržava simboličke veze, što je uvjet za rad virtualnih okruženja.
Korištenje Pip Package Manager-a za instaliranje paketa unutar virtualnog okruženja
Unutar virtualnog okruženja možete koristiti upravitelj paketa pip za instaliranje, nadogradnju i deinstalaciju paketa. Moguće je nadograditi ili nadograditi paket navođenjem određenog broja verzije.
Paket možete instalirati pomoću pipa pokretanjem naredbe (zamijenite pygame željenim nazivom paketa):
$ pip instaliraj pygame
Spremište pip paketa koje je moguće pretraživati možete pronaći ovdje.
Da biste deinstalirali paket, upotrijebite naredbu:
$ pip deinstaliraj pygame
Da biste vidjeli sve verzije paketa, pokrenite naredbu:
$ pip instaliraj pygame ==
Da biste smanjili ili nadogradili na određenu verziju, upotrijebite naredbu (zamijenite „1.9.5 "s vašim željenim brojem verzije):
$ pip instaliraj pygame == 1.9.5
Da biste nadogradili paket na najnoviju verziju, pokrenite naredbu:
$ pip install - nadogradnja pygame
Da biste vidjeli sve pakete instalirane u virtualnom okruženju, pokrenite naredbu:
$ pip lista
Da biste spremili popis instaliranih paketa unutar virtualenv, pokrenite naredbu:
$ pip zamrzavanje> zahtjevi.txtMožete koristiti gore navedene „zahtjeve.txt ”datoteku za skupno instaliranje paketa. Jedan od slučajeva je dupliciranje postojećeg okruženja instaliranjem svih paketa od nule. Da biste skupno instalirali pip pakete, pokrenite naredbu:
$ pip install -r zahtjevi.txtKorištenje Python virtualnih okruženja s ne-Python aplikacijama
Aplikacije napisane na drugim programskim jezicima mogu se zaštititi u zaštićenom okruženju u Python virtualnim okruženjima sve dok pip ili bilo koji drugi upravitelj paketa Python pruža binarne datoteke i pakete za ove zamjenske programske jezike / okvire.
Evo malog primjera koji objašnjava instaliranje Nodea.js u Python virtualnom okruženju. Izvedite sljedeće naredbe jednu po jednu:
$ python3 -m venv my_node_env$ source my_node_env / bin / activate
$ pip kotačić za instalaciju
$ pip instalirati nodeenv
$ nodeenv -p
$ nodeenv --verzija
$ čvor --verzija
Kad završite, imat ćete potpuno izolirani Čvor.js okruženje. Za različiti Node možete stvoriti onoliko virtualnih okruženja koliko želite.js aplikacije. Paketi instalirani putem upravitelja paketa npm bit će ograničeni samo na aktivirano virtualno okruženje.
Zaključak
Stvaranje virtualnog okruženja Python izvrstan je način za sadržavanje razvojnih okruženja. Svako virtualno okruženje ima svoj Python binarni i svoj neovisni skup paketa. Razvoj višestrukih Python aplikacija na istom sustavu može brzo zagađivati vaš dom i korijenski direktorij, a virtualno okruženje tako ih je lako održavati.