Preskočiť na obsah

Python

Popis

Táto stránka opisuje inštaláciu vlastnej verzie Pythonu pomocou virtuálneho prostredia vytvoreného príkazom venv.

Vlastná verzia Pythonu je potrebná, ak vaša aplikácia alebo kód vyžadujú ďalšie Python balíky alebo konkrétnu verziu Pythonu či jednotlivých balíkov. To vám poskytuje kontrolu nad verziami nainštalovaných balíkov a umožňuje ich aktualizáciu podľa potreby. Systémové aktualizácie Pythonu neovplyvnia vaše virtuálne prostredie.


Systémový Python

Predvolené verzie Pythonu dostupné na clustri sú:

   python2 --version
   Python 2.7.5

   python3 --version
   Python 3.6.8

Python 2

Python 2 už neodporúčame používať, keďže Python 2 je oficiálne EOL. Modul python2 používajte iba v prípade, že máte starší kód, ktorý nie je možné aktualizovať na Python 3.

Predvolená verzia Pythonu dostupná na clustri je:

   python3 --version
   Python 3.9.21

Okrem toho existuje niekoľko rôznych verzií Pythonu, ktoré sú dostupné ako moduly. Ich zoznam môžete zobraziť pomocou príkazu module avail a požadovanú verziu načítať pomocou príkazu module load.

module avail Python
---------------------------------------------- /storage-apps/easybuild/modules/lang ----------------------------------------------
   Python/2.7.18-GCCcore-9.3.0          Python/3.8.6-GCCcore-10.2.0         Python/3.10.4-GCCcore-11.3.0-bare
   Python/2.7.18-GCCcore-10.2.0         Python/3.9.5-GCCcore-10.3.0-bare    Python/3.10.4-GCCcore-11.3.0
   Python/2.7.18-GCCcore-11.2.0-bare    Python/3.9.5-GCCcore-10.3.0         Python/3.10.8-GCCcore-12.2.0-bare
   Python/2.7.18-GCCcore-11.3.0-bare    Python/3.9.6-GCCcore-11.2.0-bare    Python/3.10.8-GCCcore-12.2.0                 (D)
   Python/3.8.2-GCCcore-9.3.0           Python/3.9.6-GCCcore-11.2.0         SciPy-bundle/2020.03-foss-2020a-Python-3.8.2

---------------------------------------------- /storage-apps/easybuild/modules/lib -----------------------------------------------
   pybind11/2.4.3-GCCcore-9.3.0-Python-3.8.2    python-isal/1.1.0-GCCcore-11.3.0

--------------------------------------------- /storage-apps/easybuild/modules/tools ----------------------------------------------
   Meson/0.55.1-GCCcore-9.3.0-Python-3.8.2

---------------------------------------------- /storage-apps/easybuild/modules/vis -----------------------------------------------
   matplotlib/3.2.1-foss-2020a-Python-3.8.2    wxPython/4.2.0-foss-2021b
--------------------------------------------- /apps/easybuild/software/modules/lang ---------------------------------------------
   Python-bundle-PyPI/2024.06-GCCcore-13.3.0        Python/3.10.8-GCCcore-12.2.0    Python/3.13.1-GCCcore-14.2.0
   Python-bundle-PyPI/2025.07-GCCcore-14.3.0 (D)    Python/3.11.3-GCCcore-12.3.0    Python/3.13.5-GCCcore-14.3.0
   Python/3.10.4-GCCcore-11.3.0-bare                Python/3.11.5-GCCcore-13.2.0    Python/3.14.2-GCCcore-15.2.0 (D)
   Python/3.10.8-GCCcore-12.2.0-bare                Python/3.12.3-GCCcore-13.3.0

-------------------------------------------- /apps/easybuild/software/modules/tools ---------------------------------------------
   meson-python/0.16.0-GCCcore-13.3.0    meson-python/0.18.0-GCCcore-14.3.0 (D)

Inštalácia vlastného Python 3.x prostredia

Vytvorenie Python virtuálneho prostredia uloží jeho súbory do zvoleného adresára. Najskôr preto prejdite do požadovaného adresára:

mkdir ~/virtualenv
cd ~/virtualenv

Načítajte verziu Pythonu, ktorú chcete použiť ako základ virtuálneho prostredia. V tomto príklade použijeme Python/3.10.8-GCCcore-12.2.0:

module load Python/3.10.8-GCCcore-12.2.0

Ak chcete použiť jednu z predvolených verzií Pythonu 2 alebo Pythonu 3, môžete tento krok vynechať.

Použite príkaz venv na vytvorenie virtuálneho prostredia venv_py_310:

python310 -m venv venv_py_310

Názov virtuálneho prostredia

Pravdepodobne budete chcieť použiť pre svoje Python prostredie názov odvodený od projektu, na ktorom pracujete, namiesto venv_py_310. V názve však nepoužívajte medzery.

Teraz je potrebné prostredie aktivovať pomocou príkazu source:

source venv_py_310/bin/activate

Shell prompt bude teraz zobrazovať názov aktuálne aktívneho Python prostredia, t.j. (venv_py_310). Cesta k tomuto novému Pythonu, t.j. ~/venv_py_310/bin, sa pridá na začiatok existujúcej premennej PATH. Zároveň sa nastaví premenná prostredia VIRTUAL_ENV.

V tejto fáze je vhodné skontrolovať, či je správca balíkov Pythonu, pip, aktuálny:

python -m pip install --upgrade pip

V tomto bode máte funkčné a plne prispôsobiteľné Python virtuálne prostredie, v ktorom môžete inštalovať, aktualizovať a odstraňovať ľubovoľné balíky. Na opustenie Python prostredia použite príkaz deactivate. Následne sa vrátite k predvolenému systémovému Pythonu.

Môže byť užitočné zaznamenať, ktoré balíky a v akých verziách sú nainštalované v jednotlivých virtuálnych prostrediach. Spustením príkazu pip freeze sa vypíše zoznam nainštalovaných balíkov a ich verzií. Tento zoznam môžete následne použiť na opätovnú inštaláciu balíkov do virtuálneho prostredia pomocou príkazu pip install -r requirements.txt.

source venv_py_310/bin/activate
pip freeze > requirements_venv_py_310.txt
deactivate

Ak budete musieť prostredie znova vytvoriť a nainštalovať jeho balíky, spustite:

source venv_py_310/bin/activate
pip install -r requirements_venv_py_310.txt
deactivate

Požiadavky na moduly

Ak na vytvorenie Python virtuálneho prostredia použijete jednu z verzií Pythonu dostupných ako modul, musíte túto verziu Pythonu načítať pri každom použití virtuálneho prostredia.


Použitie Python 3.x prostredia so Slurm plánovačom

V Slurm odosielacom skripte je potrebné aktivovať Python virtuálne prostredie rovnako ako na príkazovom riadku. Pred príkaz, ktorý spúšťa váš Python kód, pridajte:

module load Python/3.10.8-GCCcore-12.2.0 # Only if you used Python version from available modules
source $HOME/virtualenv/venv_py_310/bin/activate

Na koniec Slurm odosielacieho skriptu pridajte:

deactivate
Created by: Marek Štekláč