Zobrazit stránkuStarší verzeZpětné odkazyNahoru Tato stránka je pouze pro čtení. Můžete si pouze prohlédnout zdrojový kód, ale ne ho měnit. Zeptejte se správce, pokud si myslíte, že něco není v pořádku. ====== 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 === <code bash> mkdir ~/projekty/muj-projekt cd ~/projekty/muj-projekt </code> Můžeš si zvolit jakékoli místo na disku. Doporučuji `~/projekty/` pro přehlednost. === 2. Vytvoř virtuální prostředí === <code bash> python3 -m venv venv </code> 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/bin/activate </code> Poznáš to podle příkazového řádku – měl by se ti objevit prefix `(venv)`: <code> (venv) uživatel@počítač:~/projekty/muj-projekt$ </code> === 4. Aktualizuj pip (správce balíčků) === <code bash> pip install --upgrade pip </code> === 5. Nainstaluj potřebné balíčky === <code bash> pip install numpy pandas requests # nebo podle toho, co potřebuješ </code> Všechny balíčky se nainstalují do `venv/lib/python3.x/site-packages/`. === 6. Deaktivuj prostředí (když skončíš) === <code bash> deactivate </code> 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 ~/projekty/muj-projekt source venv/bin/activate # Teď můžeš pracovat jako dřív </code> 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 </code> 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/ </code> Uvidíš, kolik místa zabírá složka `venv/`. === Úplné smazání projektu === <code bash> cd ~/projekty/ rm -rf muj-projekt/ </code> 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> ~/.cache/pip/ </code> 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) === <code bash> ~/projekty/muj-projekt/venv/lib/python3.x/site-packages/ </code> 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 </code> Nebo ručně: <code bash> rm -rf ~/.cache/pip/ </code> **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 ~/projekty/projekt1/ rm -rf ~/projekty/projekt2/ # 2. Vyčisti cache pip cache purge </code> ---- ==== 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í === <code bash> pip freeze > requirements.txt </code> Soubor `requirements.txt` obsahuje seznam všech balíčků a jejich verzí: <code> numpy==1.24.3 pandas==2.0.2 requests==2.31.0 </code> === Spolupracovník si projekt zkopíruje === <code bash> git clone projekt cd projekt python3 -m venv venv source venv/bin/activate pip install -r requirements.txt </code> 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='source venv/bin/activate' alias venv_off='deactivate' alias venv_new='python3 -m venv venv && source venv/bin/activate' </code> Pak stačí zadat: <code bash> venv_on # aktivace venv_off # deaktivace </code> === 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í: <code> ~/projekty/ ├── projekt1/ │ └── venv/ ├── projekt2/ │ └── venv/ └── projekt3/ └── venv/ </code> Když přepínáš mezi projekty, aktivuj jejich prostředí: <code bash> deactivate # vypni staré cd ~/projekty/projekt2 source venv/bin/activate # zapni nové </code> ---- ==== 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: <code bash> python3.9 -m venv venv python3.11 -m venv venv </code> ---- ===== Aktualizace balíků instalované pip ===== Dle [[https://www.root.cz/zpravicky/jak-aktualizovat-baliky-instalovane-pip/|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: <code bash> pip install --upgrade pip setuptools wheel </code> Všechny nainstalované jednoduše ale nejde. Řešením je použití vlastního skriptu: <code bash> pip freeze --user | cut -d'=' -f1 | xargs pip install --upgrade --user -U </code> Anebo je možné použít například balíček [[https://pypi.org/project/pipupgrade/|pipupgrade]] či [[https://pypi.org/project/pip-review/|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í: <code bash> python3 -m pip install -r requirements.txt </code> it/software/python.txt Poslední úprava: 2025/10/12 11:45autor: Petr Nosek