MEDIU VIRTUAL (VENV)
Definiție
Mediul virtual nu e un termen de inteligență artificială, ci o practică standard de organizare a proiectelor Python. Apare aici fiindcă e obiceiul care desparte un script care merge azi de unul care mai merge și peste un an. Un mediu virtual e un folder izolat în care un proiect își ține propriile biblioteci, în versiunile lui, fără să le amestece cu ale altor proiecte de pe același calculator. Confuzia frecventă e cu mașina virtuală; nu au legătură, aici nu se virtualizează niciun sistem de operare, ci doar se separă bibliotecile.
Fără mediu virtual, toate bibliotecile ajung într-un singur loc comun, iar două proiecte care au nevoie de versiuni diferite ale aceleiași biblioteci se strică reciproc. Cu mediu virtual, fiecare proiect are folderul lui, de regulă numit .venv, creat o dată și activat de fiecare dată când lucrezi la proiect; semnul că e activ e prefixul care apare în consolă. Folderul nu se copiază și nu se sincronizează, ci se reconstruiește din lista de biblioteci a proiectului. De aceea un .venv urcat în Google Drive sau într-un depozit de cod e o eroare frecventă și costisitoare: mii de fișiere mici, cotă consumată, conflicte de sincronizare, și oricum nu funcționează pe alt calculator.
Pentru un cabinet care începe să își construiască unelte proprii, mediul virtual e echivalentul dosarului separat pe client: fiecare unealtă își ține materialele ei, iar o modificare într-una nu strică alta. Regula practică are trei puncte: câte un mediu virtual per proiect, lista bibliotecilor salvată într-un fișier al proiectului, și mediul exclus din sincronizarea cu Drive sau OneDrive. Costă două minute la început și scutește ora pierdută peste șase luni, când convertorul SAF-T nu mai pornește și nimeni nu știe de ce.
Exemple practice
- Două unelte pe același calculator: convertorul SAF-T are nevoie de o versiune veche a unei biblioteci XML, generatorul de rapoarte de una nouă. Cu medii separate rulează amândouă; fără, una se strică la fiecare instalare.
- Predarea unei unelte către un coleg: nu trimiți folderul .venv, ci fișierul cu lista bibliotecilor. El își creează mediul în două comenzi și obține exact aceleași versiuni.
- Regulă de sincronizare: .venv se exclude din folderul oglindit în Drive. Nu e o preferință, e condiția ca sincronizarea să rămână utilizabilă.
Întrebări frecvente
Chiar am nevoie de mediu virtual pentru un script de treizeci de linii?
Pentru un script rulat o singură dată, nu. Pentru unul pe care îl vei rula lunar, da. Criteriul nu e mărimea codului, ci durata: orice unealtă la care revii peste luni are nevoie de un mediu în care versiunile stau pe loc.
Care e diferența față de o mașină virtuală?
O mașină virtuală simulează un calculator întreg, cu sistem de operare propriu, și ocupă gigaocteți. Un mediu virtual e doar un folder cu biblioteci Python. Numele seamănă, scopul și dimensiunea nu.
Ce se întâmplă dacă am uitat să activez mediul?
Instalările ajung în locul comun, iar scriptul poate rula corect la tine și deloc la altcineva. Se rezolvă activând mediul și reinstalând din lista proiectului, fără să se piardă nimic.