Rozdíly
Zde můžete vidět rozdíly mezi vybranou verzí a aktuální verzí dané stránky.
| Následující verze | Předchozí verze | ||
| it:software:python [2023/03/19 16:40] – vytvořeno Petr Nosek | it:software:python [2025/10/12 11:45] (aktuální) – [Co je Virtual Environment] Petr Nosek | ||
|---|---|---|---|
| Řádek 1: | Řádek 1: | ||
| ====== Python ====== | ====== 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í**: | ||
| + | |||
| + | |||
| + | ==== Co je Virtual Environment ==== | ||
| + | |||
| + | Virtual Environment je jako samostatný " | ||
| + | |||
| + | **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 === | ||
| + | |||
| + | <code bash> | ||
| + | mkdir ~/ | ||
| + | cd ~/ | ||
| + | </ | ||
| + | |||
| + | Můžeš si zvolit jakékoli místo na disku. Doporučuji `~/ | ||
| + | |||
| + | === 2. Vytvoř virtuální prostředí === | ||
| + | |||
| + | <code bash> | ||
| + | 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í === | ||
| + | |||
| + | <code bash> | ||
| + | source venv/ | ||
| + | </ | ||
| + | |||
| + | Poznáš to podle příkazového řádku – měl by se ti objevit prefix `(venv)`: | ||
| + | |||
| + | < | ||
| + | (venv) uživatel@počítač: | ||
| + | </ | ||
| + | |||
| + | === 4. Aktualizuj pip (správce balíčků) === | ||
| + | |||
| + | <code bash> | ||
| + | pip install --upgrade pip | ||
| + | </ | ||
| + | |||
| + | === 5. Nainstaluj potřebné balíčky === | ||
| + | |||
| + | <code bash> | ||
| + | pip install numpy pandas requests | ||
| + | # nebo podle toho, co potřebuješ | ||
| + | </ | ||
| + | |||
| + | Všechny balíčky se nainstalují do `venv/ | ||
| + | |||
| + | === 6. Deaktivuj prostředí (když skončíš) === | ||
| + | |||
| + | <code bash> | ||
| + | deactivate | ||
| + | </ | ||
| + | |||
| + | Příkazový řádek se vrátí do normálního stavu. | ||
| + | |||
| + | ---- | ||
| + | |||
| + | ==== Čtení projektu po čase ==== | ||
| + | |||
| + | Pokud se vrátíš k projektu později: | ||
| + | |||
| + | <code bash> | ||
| + | cd ~/ | ||
| + | source venv/ | ||
| + | # 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ů === | ||
| + | |||
| + | <code bash> | ||
| + | pip list | ||
| + | </ | ||
| + | |||
| + | Zobrazí všechny balíčky v aktivním virtuálním prostředí. | ||
| + | |||
| + | === Kontrola velikosti virtuálního prostředí === | ||
| + | |||
| + | <code bash> | ||
| + | du -sh venv/ | ||
| + | </ | ||
| + | |||
| + | Uvidíš, kolik místa zabírá složka `venv/`. | ||
| + | |||
| + | === Úplné smazání projektu === | ||
| + | |||
| + | <code bash> | ||
| + | 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) === | ||
| + | |||
| + | <code bash> | ||
| + | ~/ | ||
| + | </ | ||
| + | |||
| + | Pip si ukládá stažené balíčky do cache. Slouží to jako " | ||
| + | |||
| + | **Obsah**: Komprimované `.whl` soubory (zipping balíčků). | ||
| + | |||
| + | === 2. Instalace do projektu (~100 MB – 2 GB) === | ||
| + | |||
| + | <code bash> | ||
| + | ~/ | ||
| + | </ | ||
| + | |||
| + | 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: | ||
| + | |||
| + | <code bash> | ||
| + | pip cache purge | ||
| + | </ | ||
| + | |||
| + | Nebo ručně: | ||
| + | |||
| + | <code bash> | ||
| + | rm -rf ~/ | ||
| + | </ | ||
| + | |||
| + | **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: | ||
| + | |||
| + | <code bash> | ||
| + | # 1. Smaž jednotlivé projekty | ||
| + | rm -rf ~/ | ||
| + | rm -rf ~/ | ||
| + | |||
| + | # 2. Vyčisti cache | ||
| + | pip cache purge | ||
| + | </ | ||
| + | |||
| + | ---- | ||
| + | |||
| + | ==== Pokročilé: | ||
| + | |||
| + | Pokud chceš, aby si někdo jiný snadno zkopíroval tvůj projekt se stejnými verzemi: | ||
| + | |||
| + | === Vytvoř seznam závislostí === | ||
| + | |||
| + | <code bash> | ||
| + | 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 === | ||
| + | |||
| + | <code bash> | ||
| + | git clone projekt | ||
| + | cd projekt | ||
| + | python3 -m venv venv | ||
| + | source venv/ | ||
| + | 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: | ||
| + | |||
| + | <code bash> | ||
| + | alias venv_on=' | ||
| + | alias venv_off=' | ||
| + | alias venv_new=' | ||
| + | </ | ||
| + | |||
| + | Pak stačí zadat: | ||
| + | <code bash> | ||
| + | venv_on | ||
| + | venv_off | ||
| + | </ | ||
| + | |||
| + | === Kontrola, zda je prostředí aktivní === | ||
| + | |||
| + | Pokud si nejsi jistý, zda je virtuální prostředí aktivní, podívej se na prompt: | ||
| + | * **Aktivní**: | ||
| + | * **Neaktivní**: | ||
| + | |||
| + | === Více projektů vedle sebe === | ||
| + | |||
| + | Můžeš mít tolik projektů, kolik chceš. Každý má své vlastní virtuální prostředí: | ||
| + | |||
| + | < | ||
| + | ~/projekty/ | ||
| + | ├── projekt1/ | ||
| + | │ | ||
| + | ├── projekt2/ | ||
| + | │ | ||
| + | └── projekt3/ | ||
| + | └── venv/ | ||
| + | </ | ||
| + | |||
| + | Když přepínáš mezi projekty, aktivuj jejich prostředí: | ||
| + | |||
| + | <code bash> | ||
| + | deactivate | ||
| + | cd ~/ | ||
| + | source venv/ | ||
| + | </ | ||
| + | |||
| + | ---- | ||
| + | |||
| + | ==== Shrnutí: Checklist pro nový projekt ==== | ||
| + | |||
| + | - ✅ `mkdir ~/ | ||
| + | - ✅ `python3 -m venv venv` | ||
| + | - ✅ `source venv/ | ||
| + | - ✅ `pip install --upgrade pip` | ||
| + | - ✅ `pip install balicek1 balicek2 balicek3` | ||
| + | - ✅ Pracuj na svém kódu | ||
| + | - ✅ `deactivate` (když skončíš) | ||
| + | |||
| + | **Pro smazání: | ||
| + | |||
| + | ---- | ||
| + | |||
| + | ==== Řešení problémů ==== | ||
| + | |||
| + | **Otázka**: | ||
| + | **Odpověď**: | ||
| + | |||
| + | **Otázka**: | ||
| + | **Odpověď**: | ||
| + | |||
| + | **Otázka**: | ||
| + | **Odpověď**: | ||
| + | <code bash> | ||
| + | python3.9 -m venv venv | ||
| + | python3.11 -m venv venv | ||
| + | </ | ||
| + | |||
| + | |||
| + | |||
| + | ---- | ||
| ===== Aktualizace balíků instalované pip ===== | ===== Aktualizace balíků instalované pip ===== | ||