Preskoči na glavni sadržaj
Python alati2026-07-31 · 9 min čitanja

Python virtualna okruženja u 2026.: venv, uv, pipx, poezija — kada koristiti koje

Svaki vodič za Python kaže "koristite virtualno okruženje" i ide dalje. Ovaj ide dodatno: što venv zapravo JEST, četiri alata koja vrijedi znati u 2026., stablo odlučivanja od 60 sekundi za odabir pravog i dvije pogreške koje pokvare vaše postavke unutar tjedan dana.

Što je zapravo virtualno okruženje

Venv je direktorij koji sadrži simbolički link Python tumača plus privatne `site-packages/`. Kada je "aktiviran", PATH dodaje <venv>/bin, tako da python i pip u vašoj ljusci pokazuju na kopije venv-a. pip install X piše u site-packages/ venv-a, a ne u Python sustav.

To je to. Nema magije. To je mapa sa simboličkom vezom i 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

Sve ostalo (aktivacija skripti, omotači, upravitelji paketa) je pogodnost povrh ovog oblika.

Zašto vam treba jedan, uvijek

Bez venv-a, pip install X piše u site-packages/ vašeg sustava Python. Tri problema:

1. Konflikti. Projekt A treba django==4.2; Projekt B treba django==5.1. Nemoguće bez venvs.

2. Reproducibilnost. "Radi na mom stroju" problem je sistemskog Pythona. Venv snimka JEST okruženje.

3. Čišćenje. Izbrisati projekt? Izbrišite njegovu mapu venv. System-Python instalacije gomilaju se zauvijek.

Na macOS 12+ i većini distribucija Linuxa, system-Python je sada u vlasništvu OS-a — pip čak može odbiti instalaciju bez --break-system-packages. To je nagovještaj.

4 alata koja vrijedi znati

1. venv — osnovna linija stdlib-a

Isporučuje se uz svaku instalaciju Pythona 3.3+. Nula ovisnosti. Univerzalna zamjena:

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

Koristite kada: pišete vodič, osiguravate da skripta radi posvuda ili u zaključanom CI-ju gdje ne možete ništa instalirati.

2. uv — moderna zadana postavka (2026.)

Rđavo pisano, 10-100x brže od pipa. Zamjenjuje venv + pip + pip-tools + pyenv-download-python. Pogledajte naše uv dubinsko zaranjanje za cijeli obilazak.

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

Koristite kada: bilo koji projekt 2026 — solo, tim, CI, Docker. Razlika u brzini na hladnom cacheu je stvarna (45s pip → 2s uv na tipičnom Django projektu).

3. pipx — za CLI alate

Kada instalirate CLI kao što je ruff, httpie, black, youtube-dl, mypy, ne želite ga u svom projektu venv (zašto ovisiti o ruff da bi import project.things funkcionirao?). I ne želite to u sustavu Python (konflikti). pipx stavlja svaki u vlastiti izolirani venv, ali izlaže CLI globalno:

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

Koristite kada: instaliranje CLI-a temeljenog na Pythonu. Praktično pravilo: pipx instaliraj X ako X šalje izvršnu datoteku koju biste pokrenuli iz bilo kojeg projekta; uv pip install X ako je X biblioteka koju uvezete.

Moderna zamjena: uv tool install ruff radi istu stvar bez zasebne pipx instalacije. Odaberite bilo koju.

4. poetry — zreli dependency-locker (udio u opadanju)

Prije nego što je UV sletio, "poezija" je bila glavni alat za moderno pakiranje. Izvrstan razrješivač ovisnosti, deterministički poetry.lock, uska integracija s pyproject.toml. Još uvijek solidan — ali sporiji od UV i dodaje kognitivne troškove.

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

Koristite kada: postojeći projekt već koristi poeziju ili su vam potrebni dodaci specifični za poeziju (npr. poetry-plugin-export). Za NOVE projekte u 2026., uv vas dovodi brže uz manji otisak.

Stablo odluke od 60 sekundi

▶ PYTHONeditable · runs in your browser

To je to. 90% Python programera danas može birati s ovog popisa bez potrebe za pyenv, virtualenvwrapper, pew ili conda.

Conda — poseban slučaj

conda je zaseban univerzum: upravitelj paketa + venv upravitelj + Python distributer + C-library manager, prvenstveno za znanstveni Python. Ako radite težak numerički rad s numpy / scipy / pandas / GPU stogovima koji trebaju usklađene verzije CUDA + cuDNN, miniconda bi se ipak mogla isplatiti — unaprijed kompilirane binarne datoteke štede sate u odnosu na pip.

Inače: obični uv sada je konkurentan i na znanstvenim stackovima (instalacije numpy/pandas su sekunde, a ne minute). Nemojte posezati za condom osim ako vam izričito ne treba C-library binding pip koji se ne može lako proizvesti.

Dvije pogreške koje kvare vaše postavke unutar tjedan dana

1. Uvrštavanje .venv/ u git

Venv sadrži:

  • Apsolutne staze do vaše specifične instalacije Pythona.
  • Kompilirane .pyc datoteke.
  • Binarne datoteke koje su specifične za OS.

Potvrdite da → vaš suigrač na Windowsu ne može pokrenuti ništa. PRVO dodajte .venv/ (i venv/, .env/) u svoj .gitignore, a zatim stvorite venv.

2. Aktiviranje u pogrešnoj ljusci

source .venv/bin/activate postavlja env vars samo u TRENUTNOJ ljusci. Ako otvorite novu karticu terminala, vraćate se na sustav Python. Dva sigurna uzorka:

1. Reaktiviraj svaku sesiju — standardni tijek.

2. `uv run` / `poetry run` / `python -m project` — nikad se ne aktivira. Pokretanje naredbi iz svježe ljuske s prefiksom alata. Izvrstan u Makefiles, CI, npm-skriptama, git kukama.

Pravilo za skripte: ako se radi o pokretanju u jednom retku iz CI-ja ili Makefilea, NEMOJTE aktivirati — koristite uv run pytest ili puni put .venv/bin/pytest. Aktivacija je samo za interaktivne ljuske.

Migracija između alata

pip + venv → uv:

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

Requirements.txt nastavlja raditi doslovno. Dvije minute.

poezija → uv:

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

venv → poezija:

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

Provjera

Nakon postavljanja uvijek provjerite KOJI Python + pip koristite:

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

Ako which python prikazuje put sustava nakon aktivacije, nešto nije u redu — obično ste aktivirali u podljusci koja je već izašla.


Virtualna okruženja jedna su od rijetkih Python tema gdje je moderni odgovor (2026.) istinski jednostavniji od povijesnog odgovora. uv za nove projekte, venv za skripte, pipx za CLI. Gotovo.

Sljedeći korak: Python DevOps staza pokriva uv + ruff + Docker + moderni paket za implementaciju Pythona — praktičan rad s pravim Pythonom koji radi u vašem pregledniku.

Jeste li spremni isprobati?

15 besplatne lekcije nakon besplatne prijave — bez kartice. Isprobajte platformu, a zatim odlučite.

Počni besplatno →

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.