it:software:python

Rozdíly

Zde můžete vidět rozdíly mezi vybranou verzí a aktuální verzí dané stránky.

Odkaz na výstup diff

Následující verze
Předchozí verze
it:software:python [2023/03/19 16:40] – vytvořeno Petr Nosekit: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í**: 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 ===== ===== Aktualizace balíků instalované pip =====
  • it/software/python.1679244055.txt.gz
  • Poslední úprava: 2023/03/19 16:40
  • autor: Petr Nosek