Toto je starší verze dokumentu!
Python
Návod: Izolovaná instalace Python projektů pomocí Virtual Environment
Když instaluješ Python balíčky globálně, hrozí, že ti:
- Systém bude plný nepotřebných souborů
- Může dojít ke konfliktům verzí mezi projekty
- Těžko se pak zbavíš věcí, které už nepotřebuješ
Řešení: Virtuální prostředí (Virtual Environment) – izolovaná složka pro každý projekt.
Co je Virtual Environment
Virtual Environment je jako samostatný „kontejner“ pro Python balíčky. Všechno, co nainstalujete, zůstane v jedné složce a neovlivní zbytek systému.
Výhody:
- Čistý systém – nic se nenamontuje do `/usr/` nebo `~/.local/`
- Izolace – každý projekt má své balíčky v samostatné složce
- Snadné smazání – chceš projekt vymazat? Stačí smazat složku
- Bez konfliktů – jeden projekt může mít Python 3.9, jiný 3.11, bez problémů
- Reprodukovatelnost – stejný postup = stejný výsledek vždy
Krok za krokem: Nastavení projektu
1. Vytvoř složku pro projekt
mkdir ~/projekty/muj-projekt cd ~/projekty/muj-projekt
Můžeš si zvolit jakékoli místo na disku. Doporučuji `~/projekty/` pro přehlednost.
2. Vytvoř virtuální prostředí
python3 -m venv venv
Tím se vytvoří složka `venv/` s úplně novým Python prostředím. Název `venv` je konvence, ale můžeš si zvolit jakýkoli název.
3. Aktivuj virtuální prostředí
source venv/bin/activate
Poznáš to podle příkazového řádku – měl by se ti objevit prefix `(venv)`:
(venv) uživatel@počítač:~/projekty/muj-projekt$
4. Aktualizuj pip (správce balíčků)
pip install --upgrade pip
5. Nainstaluj potřebné balíčky
pip install numpy pandas requests # nebo podle toho, co potřebuješ
Všechny balíčky se nainstalují do `venv/lib/python3.x/site-packages/`.
6. Deaktivuj prostředí (když skončíš)
deactivate
Příkazový řádek se vrátí do normálního stavu.
Čtení projektu po čase
Pokud se vrátíš k projektu později:
cd ~/projekty/muj-projekt source venv/bin/activate # Teď můžeš pracovat jako dřív
Virtuální prostředí si pamatuje, jaké balíčky byly nainstalovány.
Užitečné příkazy
Kontrola nainstalovaných balíčků
pip list
Zobrazí všechny balíčky v aktivním virtuálním prostředí.
Kontrola velikosti virtuálního prostředí
du -sh venv/
Uvidíš, kolik místa zabírá složka `venv/`.
Úplné smazání projektu
cd ~/projekty/ rm -rf muj-projekt/
Tím zmizí všechno – projekt, kód, balíčky, všechno. Místo se uvolní.
Stahování vs. instalace: Co se kde nachází
Když spustíš `pip install`, dějí se dvě věci:
1. Stahování do cache (~500 MB – 2 GB)
~/.cache/pip/
Pip si ukládá stažené balíčky do cache. Slouží to jako „paměť“ – když nainstaluješ stejný balíček příště, pip ho vezme z cache namísto stažení ze sítě.
Obsah: Komprimované `.whl` soubory (zipping balíčků).
2. Instalace do projektu (~100 MB – 2 GB)
~/projekty/muj-projekt/venv/lib/python3.x/site-packages/
Tady žijí rozpakované balíčky, které projekt skutečně používá.
Obsah: Skutečný kód knihoven, které potřebuješ.
Čištění cache a uvolnění místa
Vyčisti pip cache
Cache si můžeš bezpečně vyčistit – nic se nerozbije:
pip cache purge
Nebo ručně:
rm -rf ~/.cache/pip/
Co se stane?
- ✅ Uvolníš 500 MB – 2 GB místa
- ✅ Virtuální prostředí zůstane intaktní
- ❌ Příští instalace bude pomalejší (pip musí stáhnout znovu)
Vyčisti komplexní projekt
Pokud máš více projektů a chceš uvolnit všechno:
# 1. Smaž jednotlivé projekty rm -rf ~/projekty/projekt1/ rm -rf ~/projekty/projekt2/ # 2. Vyčisti cache pip cache purge
Pokročilé: Uložení seznamu balíčků
Pokud chceš, aby si někdo jiný snadno zkopíroval tvůj projekt se stejnými verzemi:
Vytvoř seznam závislostí
pip freeze > requirements.txt
Soubor `requirements.txt` obsahuje seznam všech balíčků a jejich verzí:
numpy==1.24.3 pandas==2.0.2 requests==2.31.0
Spolupracovník si projekt zkopíruje
git clone projekt cd projekt python3 -m venv venv source venv/bin/activate pip install -r requirements.txt
Všechny balíčky v přesných verzích se nainstalují automaticky.
Tipy a triky
Aliasy pro usnadnění
Do souboru `~/.bashrc` nebo `~/.zshrc` si můžeš přidat aliasy:
alias venv_on='source venv/bin/activate' alias venv_off='deactivate' alias venv_new='python3 -m venv venv && source venv/bin/activate'
Pak stačí zadat:
venv_on # aktivace venv_off # deaktivace
Kontrola, zda je prostředí aktivní
Pokud si nejsi jistý, zda je virtuální prostředí aktivní, podívej se na prompt:
- Aktivní: `(venv) uživatel@počítač:…`
- Neaktivní: `uživatel@počítač:…`
Více projektů vedle sebe
Můžeš mít tolik projektů, kolik chceš. Každý má své vlastní virtuální prostředí:
~/projekty/ ├── projekt1/ │ └── venv/ ├── projekt2/ │ └── venv/ └── projekt3/ └── venv/
Když přepínáš mezi projekty, aktivuj jejich prostředí:
deactivate # vypni staré cd ~/projekty/projekt2 source venv/bin/activate # zapni nové
Shrnutí: Checklist pro nový projekt
- ✅ `mkdir ~/projekty/novy-projekt && cd ~/projekty/novy-projekt`
- ✅ `python3 -m venv venv`
- ✅ `source venv/bin/activate`
- ✅ `pip install –upgrade pip`
- ✅ `pip install balicek1 balicek2 balicek3`
- ✅ Pracuj na svém kódu
- ✅ `deactivate` (když skončíš)
Pro smazání: `rm -rf ~/projekty/novy-projekt/`
Řešení problémů
Otázka: Co když si nejsem jistý, co je kde nainstalováno?
Odpověď: Spusť `pip list` v aktivním virtuálním prostředí. Vidíš jen balíčky toho konkrétního projektu.
Otázka: Zabírá to hodně místa?
Odpověď: Typicky 100 MB – 2 GB na projekt, podle počtu balíčků. Všechno je ale v jedné složce a snadno se to smaže.
Otázka: Mohu mít více verzí Pythonu?
Odpověď: Ano. Každé virtuální prostředí může být postaveno na jiné verzi Pythonu, pokud je máš nainstalovanou:
python3.9 -m venv venv python3.11 -m venv venv
Aktualizace balíků instalované pip
Dle tohoto článku je poněkud problém s aktualizací balíčků nainstalovaných pomocí Pip (package installer for Python). Je možné ručně vynutit aktualizaci explicitně vyjmenovaných balíčků, například:
pip install --upgrade pip setuptools wheel
Všechny nainstalované jednoduše ale nejde. Řešením je použití vlastního skriptu:
pip freeze --user | cut -d'=' -f1 | xargs pip install --upgrade --user -U
Anebo je možné použít například balíček pipupgrade či pip-review. V prvním případě se aktualizuje triviálně pipugrade, v druhém případě pip-review –local –auto.
Nebo se nabízí plošná aktualizace pro nějaký projekt pomocí:
python3 -m pip install -r requirements.txt