Noțiuni introductive cu mediile virtuale în Python

În acest articol, veți învăța cum să începeți cu mediile virtuale în Python, atât în ​​sistemele de operare Windows, cât și în Linux.

Când începeți să lucrați la mai multe proiecte în mediul dvs. de dezvoltare locală, veți întâlni adesea probleme de dependență. Crearea de medii virtuale pentru fiecare dintre proiectele dvs. vă poate ajuta să gestionați mai bine dependențele și cerințele proiectului.

Pentru a profita de avantajul mediilor virtuale din Python, să învățăm să creăm și să activăm medii virtuale. 👩🏽‍💻

Ce sunt mediile virtuale?

Mediile virtuale sunt medii izolate și independente care conțin codul și dependențele unui proiect.

Dar de ce ar trebui să folosești medii virtuale?

Ei bine, mediile virtuale vă permit să instalați și să utilizați versiuni diferite ale acelorași biblioteci pentru diferite proiecte. Utilizarea mediilor virtuale asigură, de asemenea, că nu există modificări de ruptură atunci când două sau mai multe proiecte utilizează versiuni diferite. Să înțelegem asta mai în detaliu.

Instalarea pachetelor în Python

Biblioteca standard Python este livrată cu mai multe module utile pentru testarea unitară, interacțiunea cu sistemul de operare, lucrul cu datele și orele și multe altele.

Cu toate acestea, atunci când lucrați la proiecte Python, va trebui adesea să instalați alte pachete – dezvoltate de comunitatea Python. Acest lucru este valabil mai ales pentru aplicații precum web scraping pentru colectarea de date, machine learning și aplicații web.

Pentru a instala și gestiona aceste pachete, puteți folosi conda sau pip.

Fiecare proiect necesită un set specific de pachete pe care trebuie să le instalați. Cu toate acestea, când instalați toate pachetele din mediul dumneavoastră de dezvoltare pe mașina dumneavoastră locală, toate proiectele partajează pachetele instalate la nivel global.

Deci de ce este aceasta o problemă?

Ei bine, este posibil să aveți N pachete în mediul dumneavoastră de dezvoltare. Cu toate acestea, proiectul la care lucrați în prezent poate necesita doar 3 dintre ele. Când toate proiectele dvs. au instalații comune, este foarte dificil să identificați care dintre proiecte a necesitat care dintre pachetele instalate – dependențele asociate fiecărui proiect.

  Cum să implementați derularea infinită și paginarea cu Next.js și TanStack Query

Există o altă limitare a acestei abordări. Să presupunem că aveți un proiect Django 2.2 în biblioteca dvs. de proiecte. Decizi să începi să lucrezi la un proiect care folosește Django 4. Deci instalezi cea mai recentă versiune de Django în același mediu de dezvoltare.

Ce se întâmplă cu instalația existentă?

Este eliminat și înlocuit cu versiunea de Django pe care ați instalat-o. Cu versiuni stabile mai noi, este posibil ca anumite funcții să fi fost depreciate. Și proiectele tale anterioare Django s-ar putea să nu funcționeze conform așteptărilor.

Rezumând discuția noastră de până acum: gestionarea dependențelor devine dificilă atunci când toate pachetele sunt instalate într-un mediu comun, deoarece proiectele necesită propriul set de biblioteci pentru a rula.

Cum funcționează mediile virtuale

Până acum, am văzut provocările asociate cu instalarea pachetelor într-un mediu de dezvoltare global (instalări la nivel de sistem). Acest lucru ne motivează să înțelegem cum mediile virtuale abordează această limitare.

Când creați și activați un mediu virtual pentru proiectele dvs. Python, puteți instala numai acele pachete care sunt necesare pentru proiectul curent.

Revizuind exemplul proiectelor Django, cu medii virtuale, puteți rula atât proiectele Django 2.2, cât și Django 4 – fără niciun conflict. Acest lucru se datorează faptului că instalațiile Django nu mai sunt instalații la nivel de sistem, ci sunt limitate la mediile virtuale ale proiectelor respective.

În esență: mediile virtuale sunt medii izolate care conțin atât codul, cât și dependențele pentru un proiect.

Avantajele mediilor virtuale

Acum că ați învățat cum funcționează mediile virtuale în Python, să enumerăm avantajele utilizării lor:

  • Mediile virtuale oferă un mediu de dezvoltare izolat pentru proiecte individuale, permițându-ne să instalăm doar pachetele necesare pentru proiectul specific.
  • Deoarece mediile virtuale ale proiectelor sunt atât independente, cât și izolate, proiecte diferite pot folosi versiuni diferite ale aceleiași biblioteci – în funcție de cerințe. Cu mediile virtuale, nu trebuie să vă faceți griji cu privire la permisiunile de sistem pentru a instala biblioteci și a configura mediul de dezvoltare.
  • Odată ce instalați pachetele într-un mediu virtual, puteți captura dependențele proiectului într-un fișier requirements.txt. Acest lucru permite altor dezvoltatori să reproducă dezvoltarea și mediul proiectului și să instaleze pachetele necesare folosind o singură comandă.

Până acum, ați învățat cum funcționează mediile virtuale și avantajele utilizării lor. Să explorăm câteva instrumente populare pe care le puteți folosi pentru a crea și gestiona medii virtuale în Python.

  Cum să plătești benzina fără a părăsi mașina

#1. Virtualenv

Virtualenv este unul dintre instrumentele utilizate pe scară largă pentru crearea și gestionarea mediilor virtuale pentru proiectele Python. Un subset al funcționalității virtualenv este disponibil în pachetul venv. Cu toate acestea, pachetul virtualenv este mai rapid și extensibil în comparație cu venv.

#2. Pipenv

Cu pipnev, aveți atât funcționalitatea de mediu virtual a virtualenv, cât și capabilitățile de gestionare a pachetelor ale pip. Utilizează gestionează fișierele pip pentru a gestiona dependențele de proiect în interiorul unui mediu virtual folosind.

Puteți încerca pipenv chiar din browser pe acest loc de joacă Pipenv.

#3. Conda

Dacă utilizați distribuția Anaconda de Python pentru dezvoltare, atunci puteți utiliza conda pentru gestionarea pachetelor și pentru crearea de medii virtuale.

Pentru a afla mai multe, consultați acest ghid cuprinzător despre gestionarea mediilor cu conda.

#4. Poezie

Poetry este un instrument de gestionare a pachetelor care vă permite să gestionați dependențele din toate proiectele Python. Pentru a începe să utilizați Poetry, trebuie să aveți instalat Python 3.7 sau o versiune ulterioară.

#5. Venv

După cum am menționat, venv oferă un subset al funcționalității virtualenv, dar vine cu avantajul că este încorporat în biblioteca standard Python, începând de la Python 3.3.

Este ușor disponibil cu instalarea Python și nu necesită instalarea de pachete externe. Îl vom folosi în acest tutorial pentru a crea și a lucra cu medii virtuale. ✅

Cum se creează un mediu virtual Python în Ubuntu

💬 Pentru a urma restul acestui tutorial, trebuie să aveți o instalare locală a Python 3. Asigurați-vă că rulați Python 3.5 sau o versiune ulterioară.

Această secțiune prezintă pașii pentru a crea și activa medii virtuale într-o mașină Ubuntu Linux. Aceiași pași pot fi utilizați și pe alte distribuții Linux.

Pentru o gestionare mai ușoară, să creăm un director de proiect și să creăm un CD în el; Vom crea venv în acest director.

$ mkdir my_project
$ cd my_project

Sintaxa generală pentru a crea un mediu virtual pentru proiectul dvs. Python este python3 -m venv . La rularea acestei comenzi, va fi creat un mediu virtual numit my_env în directorul de lucru curent:

$ python3 -m venv my_env

Cum să activați și să instalați pachete într-un mediu virtual

După ce ați creat mediul virtual, îl puteți activa și instala pachetele necesare în el. Pentru a activa mediul virtual, puteți rula următoarea comandă:

$ source my_env/bin/activate

După ce ați activat un mediu virtual, puteți rula comanda pip list pentru a obține lista pachetelor instalate:

$ pip list

Până acum nu am instalat niciun pachet, așa că ar trebui să puteți vedea setuptools și pip — instalate implicit — în fiecare dintre mediile virtuale create.

  Cum să obțineți Philo 7 Days Free Trial

Instalarea pip în mediul virtual vă permite să instalați pachetele necesare pentru proiectul specific; de aceea aveți un mediu de dezvoltare independent pentru fiecare proiect.

Acum că ați activat mediul virtual, puteți instala pachete specifice proiectului în el folosind pip. De exemplu, să instalăm cererile Python, unul dintre cele mai descărcate pachete Python, care oferă câteva caracteristici utile pentru a trimite solicitări HTTP pentru lucrul cu API-urile web.

$ pip install requests

Când instalați biblioteca de solicitări, veți vedea că biblioteca de solicitări este instalată împreună cu toate pachetele necesare.

$ pip list

Puteți folosi comanda pip freeze și redirecționați rezultatul către un fișier requirements.txt, după cum se arată:

$ pip freeze > requirements.txt

Dacă examinați conținutul directorului actual al proiectului, veți vedea că fișierul requirements.txt a fost creat.

$ ls
# my_env requirements.txt

Puteți dezactiva mediul virtual după ce ați lucrat la proiect rulând următoarea comandă:

$ deactivate

Cum se creează un mediu virtual Python în Windows

În general, un mediu Linux este preferat pentru dezvoltare. Dacă sunteți pe o mașină Windows, puteți lua în considerare utilizarea subsistemului Windows pentru Linux (WSL) pentru a configura un mediu terminal Ubuntu pentru dezvoltare locală.

Dacă sunteți pe o mașină Windows, puteți utiliza fie Windows PowerShell, fie Linia de comandă și puteți crea medii virtuale folosind următoarea comandă:

> python -m venv <path-to-venv>

Cum să activați un mediu virtual

Activarea mediilor virtuale pe o mașină Windows este diferită, în funcție de dacă lucrați la promptul de comandă sau la Windows PowerShell.

Dacă vă aflați în linia de comandă, rulați următoarea comandă pentru a activa mediul virtual:

> <path-to-venv>Scriptsactivate.bat

În mod alternativ, dacă utilizați Windows PowerShell, rularea acestei comenzi va activa mediul virtual:

> <path-to-venv>ScriptsActivate.ps1

Puteți instala toate pachetele necesare în mediul virtual.

Pentru a dezactiva mediile virtuale, puteți rula comanda dezactivare — atât în ​​promptul de comandă, cât și în Windows PowerShell.

Concluzie

În acest articol, am discutat despre limitările instalărilor la nivel de sistem și despre modul în care acestea fac dificilă gestionarea dependențelor în proiectele Python. Mediile virtuale din Python oferă o modalitate de a gestiona mai bine dependențele, oferind în același timp un mediu de dezvoltare izolat pentru proiecte individuale.

Printre instrumentele utilizate pe scară largă pentru crearea și gestionarea mediilor virtuale în Python, ați învățat cum să utilizați venv – care este încorporat în biblioteca standard Python pentru a crea și activa medii virtuale.

În mediul virtual dedicat unui proiect, pot fi instalate versiuni de biblioteci specifice unui proiect. Aceste cerințe pot fi apoi capturate într-un fișier requirements.txt, care permite altor dezvoltatori să reproducă cu ușurință mediul de proiect.

Când începeți următorul proiect Python, asigurați-vă că utilizați medii virtuale pentru o gestionare mai bună a dependenței. Codare fericită!🎉