it:software:python

Toto je starší verze dokumentu!


Python

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.

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

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.


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.


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í.


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š.


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

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.


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é

  1. ✅ `mkdir ~/projekty/novy-projekt && cd ~/projekty/novy-projekt`
  2. ✅ `python3 -m venv venv`
  3. ✅ `source venv/bin/activate`
  4. ✅ `pip install –upgrade pip`
  5. ✅ `pip install balicek1 balicek2 balicek3`
  6. ✅ Pracuj na svém kódu
  7. ✅ `deactivate` (když skončíš)

Pro smazání: `rm -rf ~/projekty/novy-projekt/`


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

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
  • it/software/python.1760269513.txt.gz
  • Poslední úprava: 2025/10/12 11:45
  • autor: Petr Nosek