Sari la conținutul principal
Instrumente Python2026-07-31 · 9 min de citit

Medii virtuale Python în 2026: venv, uv, pipx, poetry — Când să folosiți pe care

Fiecare tutorial Python spune „utilizați un mediu virtual” și trece mai departe. Acesta merge mai mult: ce este de fapt un venv, cele patru instrumente care merită cunoscute în 2026, un arbore de decizie de 60 de secunde pentru a-l alege pe cel potrivit și cele două greșeli care îți distrug configurația într-o săptămână.

Ce este de fapt un mediu virtual

Un venv este un director care conține o legătură simbolică de interpret Python plus un `site-packages/` privat. Când este „activat”, PATH înaintează <venv>/bin, deci python și pip în shell-ul dvs. indică la copiile venv. pip install X scrie în site-packages/ al venv, nu în sistemul Python.

Asta este. Fără magie. Este un folder cu un link simbolic și un pyvenv.cfg.

BASH
$ python -m venv .venv $ ls .venv/ bin/ include/ lib/ pyvenv.cfg $ cat .venv/pyvenv.cfg home = /opt/homebrew/opt/python@3.13/bin include-system-site-packages = false version = 3.13.2

Orice altceva (activare scripturi, wrapper-uri, manageri de pachete) este comoditate pe deasupra acestei forme.

De ce ai nevoie de unul, întotdeauna

Fără un venv, pip install X scrie în sistemul dumneavoastră site-packages/ din Python. Trei probleme:

1. Conflicte. Proiectul A are nevoie de django==4.2; Proiectul B are nevoie de django==5.1. Imposibil fără venvs.

2. Reproducibilitate. „Funcționează pe mașina mea” este o problemă de sistem-Python. Un instantaneu venv ESTE mediul.

3. Curățenie. Ștergeți un proiect? Ștergeți folderul său venv. Instalările System-Python se acumulează pentru totdeauna.

Pe macOS 12+ și majoritatea distribuțiilor Linux, system-Python este acum deținut de sistemul de operare — pip poate chiar să refuze instalarea fără --break-system-packages. Acesta este un indiciu.

Cele 4 instrumente care merită cunoscute

1. venv — linia de bază stdlib

Se livrează cu fiecare instalare Python 3.3+. Zero dependențe. Soluția universală de rezervă:

BASH
python -m venv .venv # create source .venv/bin/activate # macOS / Linux .venv\Scripts\activate # Windows pip install -r requirements.txt deactivate # or close the shell

Utilizați când: scrieți un tutorial, vă asigurați că un script funcționează peste tot sau într-un CI blocat în care nu puteți instala nimic.

2. uv — implicit modern (2026)

Scris rugină, de 10-100 de ori mai rapid decât pip. Înlocuiește venv + pip + pip-tools + pyenv-download-python. Consultați uv deep-dive pentru turul complet.

BASH
uv venv # create venv (uses current Python) uv venv --python 3.13 # or download + pin a version uv pip install -r requirements.txt uv run pytest # run without activating uv add fastapi # append to pyproject.toml + install uv sync # install exactly what pyproject.toml says

Utilizați când: orice proiect din 2026 — solo, echipă, CI, Docker. Diferența de viteză pe un cache rece este reală (45 s pip → 2 s uv pe un proiect Django tipic).

3. pipx — pentru instrumentele CLI

Când instalați un CLI cum ar fi ruff, httpie, black, youtube-dl, mypy, nu doriți ca acesta în proiectul dvs. venv (de ce depindeți de ruff pentru ca import project.things să funcționeze?). Și nu o doriți în sistem Python (conflicte). pipx pune fiecare în propriul său venv izolat, dar expune CLI la nivel global:

BASH
pipx install ruff pipx install httpie pipx install black ruff check . # works from anywhere, no activation httpie GET api.github.com black .

Utilizați când: instalați un CLI bazat pe Python. Regula generală: pipx install X dacă X livrează un executabil pe care l-ai rula din orice proiect; uv pip install X dacă X este o bibliotecă pe care o importați.

Înlocuire modernă: uv tool install ruff face același lucru fără o instalare pipx separată. Alegeți fie.

4. poezie — un bloc de dependență matur (cotă în scădere)

Înainte de aterizarea UV, „poezia” a fost instrumentul modern de ambalare. Soluție excelentă a dependențelor, poetry.lock deterministă, integrare strânsă cu pyproject.toml. Încă solidă - dar mai lent decât UV și adaugă cheltuieli cognitive.

BASH
poetry new my-project poetry add fastapi poetry install poetry run pytest poetry publish

Utilizați atunci când: proiectul existent folosește deja poezie sau aveți nevoie de pluginuri specifice pentru poezie (de exemplu, „poetry-plugin-export”). Pentru proiectele NOI din 2026, uv te duce mai repede acolo, cu o amprentă mai mică.

Arborele de decizie de 60 de secunde

▶ PYTHONeditable · runs in your browser

Asta e. 90% dintre dezvoltatorii Python de astăzi pot alege din această listă fără a avea nevoie vreodată de pyenv, virtualenvwrapper, pew sau conda.

Conda — cazul special

conda este un univers separat: manager de pachete + manager venv + distribuitor Python + manager de bibliotecă C, în primul rând pentru Python științific. Dacă faceți o muncă numerică grea cu stivele numpy / scipy / pandas / GPU care au nevoie de versiuni CUDA + cuDNN potrivite, miniconda poate merita totuși — binarele pre-compilate economisesc ore față de pip.

În caz contrar: uv-ul simplu este acum competitiv și pe stivele științifice (instalările numpy/pandas sunt în secunde, nu minute). Nu ajungeți la conda decât dacă aveți nevoie în mod specific de un pip de legare C-library pe care nu îl puteți produce cu ușurință.

Cele două greșeli care îți distrug configurația într-o săptămână

1. Comitarea .venv/ la git

Un venv conține:

  • Căi absolute către instalarea dvs. specifică Python.
  • Fișiere .pyc compilate.
  • Binare care sunt specifice sistemului de operare.

Comiți-o → colegul tău de echipă pe Windows nu poate rula nimic. Adăugați .venv/ (și venv/, .env/) la .gitignore dvs. ÎNTÂI, apoi creați venv.

2. Activarea în shell greșit

source .venv/bin/activate setează valorile env numai în shell-ul CURRENT. Dacă deschideți o nouă filă de terminal, vă întoarceți la sistemul Python. Două modele sigure:

1. Reactivați fiecare sesiune — fluxul standard.

2. `uv run` / `poetry run` / `python -m project` — nu se activează deloc. Rulați comenzi dintr-un nou shell prefixat cu instrumentul. Excelent în Makefiles, CI, scripturi npm, git hooks.

Regula pentru scripturi: dacă este o rulare cu o singură linie de la CI sau un Makefile, NU activați — utilizați uv run pytest sau calea completă .venv/bin/pytest. Activarea este doar pentru shell-uri interactive.

Migrarea între instrumente

pip + venv → uv:

BASH
rm -rf .venv uv venv uv pip install -r requirements.txt

Requirements.txt continuă să funcționeze literal. Două minute.

poezie → uv:

BASH
uvx migrate-to-uv # community tool, converts pyproject.toml

venv → poezie:

BASH
poetry init poetry add $(pip freeze | cut -d= -f1)

Verificare

După configurare, verificați întotdeauna CE Python + pip utilizați:

BASH
$ which python /path/to/project/.venv/bin/python # ✅ venv /opt/homebrew/bin/python # ❌ system, activation didn't take $ which pip /path/to/project/.venv/bin/pip # ✅ venv $ python -c "import sys; print(sys.prefix)" /path/to/project/.venv # ✅ venv

Dacă whhich python arată o cale de sistem după activare, ceva nu este în regulă - de obicei ați activat într-un subshell care a ieșit deja.


Mediile virtuale sunt unul dintre puținele subiecte Python în care răspunsul modern (2026) este cu adevărat mai simplu decât răspunsul istoric. uv pentru proiecte noi, venv pentru scripturi, pipx pentru CLI. Făcut.

Următorul pas: Python DevOps track acoperă uv + ruff + Docker + stiva modernă de implementare Python - hands-on cu Python real care rulează în browser.

Ești gata să-l încerci?

15 lecții gratuite după o înscriere gratuită — fără card. Eșantionați platforma, apoi decideți.

Începe gratuit →

Or unlock every lesson

Pro — $12/mo, unlimited AI, cancel any time. Refund within 14 days worldwide.

See Pro plans →

Get one Python lesson + one career idea every Friday

No spam, no "buy our course now". Three bullets, every Friday. Unsubscribe with one click.