Virtuální prostředí Pythonu v roce 2026: venv, uv, pipx, poezie — kdy použít kterou
Každý tutoriál Pythonu říká „použij virtuální prostředí“ a jde dál. Tohle jde o krok navíc: co vlastně JE Venv, čtyři nástroje, které stojí za to znát v roce 2026, 60sekundový rozhodovací strom pro výběr toho správného a dvě chyby, které během týdne naruší vaše nastavení.
Co to vlastně virtuální prostředí je
Venv je adresář obsahující symbolický odkaz interpretu Pythonu plus soukromý `site-packages/`. Když je "aktivován", PATH přidává před <venv>/bin, takže python a pip ve vašem shellu ukazují na kopie venv. pip install X zapisuje do site-packages/ venv, nikoli do systémového Pythonu.
To je vše. Žádná magie. Je to složka se symbolickým odkazem a 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
Vše ostatní (aktivace skriptů, obalů, správců balíčků) je pohodlí nad tímto tvarem.
Proč vždy potřebujete jeden
Bez venv zapíše pip install X do vašeho systému Python site-packages/. Tři problémy:
1. Konflikty. Projekt A potřebuje django==4.2; Projekt B potřebuje django==5.1. Bez venvs to nejde.
2. Reprodukovatelnost. „Funguje na mém počítači“ je systémový problém Pythonu. Snímek venv JE prostředí.
3. Vyčištění. Smazat projekt? Smažte jeho složku venv. Instalace systému Python se hromadí navždy.
V macOS 12+ a většině linuxových distribucí je nyní system-Python ve vlastnictví OS – pip může dokonce odmítnout instalaci bez --break-system-packages. To je náznak.
4 nástroje, které stojí za to znát
1. venv — základní linie stdlib
Dodává se s každou instalací Pythonu 3.3+. Nulové závislosti. Univerzální záložní:
BASHpython -m venv .venv # create source .venv/bin/activate # macOS / Linux .venv\Scripts\activate # Windows pip install -r requirements.txt deactivate # or close the shell
Použijte, když: píšete tutoriál, zajišťujete, aby skript fungoval všude, nebo v uzamčeném CI, kde nemůžete nic nainstalovat.
2. uv — moderní výchozí (2026)
Rust-napsané, 10-100x rychlejší než pip. Nahrazuje venv + pip + pip-tools + pyenv-download-python. Kompletní prohlídku najdete v našem uv deep-dive.
BASHuv 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
Použijte, když: jakýkoli projekt 2026 – sólo, tým, CI, Docker. Rozdíl v rychlosti na studené mezipaměti je skutečný (45s pip → 2s uv na typickém projektu Django).
3. pipx — pro nástroje CLI
Když nainstalujete CLI jako ruff, httpie, black, youtube-dl, mypy, nechcete je ve vašem projektu venv (proč se spoléhat na ruff, aby import project.things fungoval?). A v systémovém Pythonu to nechcete (konflikty). pipx umístí každý do vlastního izolovaného venv, ale odhaluje CLI globálně:
BASHpipx install ruff pipx install httpie pipx install black ruff check . # works from anywhere, no activation httpie GET api.github.com black .
Použijte, když: instalujete CLI založené na Pythonu. Základní pravidlo: pipx nainstalujte X, pokud X dodává spustitelný soubor, který byste spustili z jakéhokoli projektu; uv pip install X, pokud X je knihovna, kterou importujete.
Moderní náhrada: uv tool install ruff dělá to samé bez samostatné instalace pipx. Vyberte si buď.
4. poezie — vyzrálá závislost-locker (klesající podíl)
Než přistálo UV záření, byla „poezie“ moderním balicím nástrojem. Vynikající řešič závislostí, deterministický poetry.lock, těsná integrace s pyproject.toml. Stále pevné - ale pomalejší než UV a přidává kognitivní režii.
BASHpoetry new my-project poetry add fastapi poetry install poetry run pytest poetry publish
Použijte, když: existující projekt již používá poezii nebo potřebujete pluginy specifické pro poezii (např. poetry-plugin-export). U NOVÝCH projektů v roce 2026 vás „uv“ dostane rychleji s menším prostorem.
60sekundový rozhodovací strom
To je vše. 90 % vývojářů Pythonu si dnes může vybrat z tohoto seznamu, aniž by kdy potřebovali pyenv, virtualenvwrapper, pew nebo conda.
Conda — zvláštní případ
conda je samostatný vesmír: správce balíčků + správce venv + distributor Pythonu + správce knihovny C, primárně pro vědecký Python. Pokud děláte náročnou numerickou práci se zásobníky numpy / scipy / pandas / GPU, které potřebují odpovídající verze CUDA + cuDNN, může se miniconda stále vyplatit – předkompilované binární soubory ušetří hodiny oproti pip.
Jinak: plain uv je nyní konkurenceschopný i na vědeckých hromadách (instalace numpy / pandy jsou sekundy, ne minuty). Nesahejte po conda, pokud konkrétně nepotřebujete vázací pip knihovny C, který nelze snadno vyrobit.
Dvě chyby, které během týdne naruší vaše nastavení
1. Potvrzení .venv/ do git
Venv obsahuje:
- Absolutní cesty k vaší konkrétní instalaci Pythonu.
- Kompilované soubory
.pyc. - Binární soubory, které jsou specifické pro OS.
Commit that → váš spoluhráč ve Windows nemůže nic spustit. NEJPRVE přidejte .venv/ (a venv/, .env/) do souboru .gitignore a poté vytvořte venv.
2. Aktivace ve špatném prostředí
source .venv/bin/activate nastavuje proměnné env pouze v AKTUÁLNÍM prostředí. Pokud otevřete novou kartu terminálu, vrátíte se zpět do systémového Pythonu. Dva bezpečné vzory:
1. Reaktivujte každou relaci – standardní postup.
2. `uv run` / `poetry run` / `python -m project` — nikdy se neaktivovat vůbec. Spouštějte příkazy z nového prostředí s předponou nástroje. Skvělé v Makefiles, CI, npm-scriptech, git hookech.
Pravidlo pro skripty: pokud se jedná o jednořádkové spouštění z CI nebo Makefile, NEAKTIVUJTE — použijte uv run pytest nebo úplnou cestu .venv/bin/pytest. Aktivace je pouze pro interaktivní shelly.
Migrace mezi nástroji
pip + venv → uv:
BASHrm -rf .venv uv venv uv pip install -r requirements.txt
Requirements.txt funguje doslovně. Dvě minuty.
poezie → uv:
BASHuvx migrate-to-uv # community tool, converts pyproject.toml
venv → poezie:
BASHpoetry init poetry add $(pip freeze | cut -d= -f1)
Ověření
Po nastavení vždy zkontrolujte, KTERÝ Python + pip používáte:
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
Pokud který python po aktivaci ukazuje cestu k systému, něco není v pořádku – obvykle jste aktivovali v podshellu, který již skončil.
Virtuální prostředí jsou jedním z mála témat Pythonu, kde je moderní odpověď (2026) skutečně jednodušší než historická odpověď. uv pro nové projekty, venv pro skripty, pipx pro CLI. Hotovo.
Další krok: Python DevOps track pokrývá uv + ruff + Docker + moderní sadu nasazení Pythonu – praktické se skutečným Pythonem spuštěným ve vašem prohlížeči.