Conda je alat otvorenog koda za upravljanje paketima i virtualnim okruženjima. Omogućuje jednostavno kreiranje i održavanje virtualnih okruženja za Python, ali i druge programske jezike te ne zahtijeva root ovlasti.
Na klasteru Isabella conda je dostupna u sklopu Miniconda paketa.
Verzija | Modul |
---|---|
4.5.2 | conda |
$ module load conda
Conda virtualna okruženja
Kreiranje
Za kreiranje novog virtualnog okruženja koristi se naredba conda create.
U sljedećem primjeru kreira se novo conda virtualno okruženje naziva py37 unutar kojeg se odmah instalira i Python verzija 3.7.
Ispis sadrži podatke o paketima koji će biti instalirani te upute o pokretanju kreiranog virtualnog okruženja.
[tsmolcic@teran ~]$ module load conda [tsmolcic@teran ~]$ conda create --name py37 python=3.7 Solving environment: done ... ## Package Plan ## environment location: /home/tsmolcic/.conda/envs/py37 added / updated specs: - python=3.7 The following packages will be downloaded: package | build ---------------------------|----------------- openssl-1.1.1c | h7b6447c_1 3.8 MB ... wheel-0.33.4 | py37_0 39 KB ------------------------------------------------------------ Total: 43.1 MB The following NEW packages will be INSTALLED: ca-certificates: 2019.5.15-0 ... Proceed ([y]/n)? y Downloading and Extracting Packages openssl-1.1.1c | 3.8 MB | ########################################################################################################### | 100% ... Preparing transaction: done Verifying transaction: done Executing transaction: done # # To activate this environment, use: # > source activate py37 # # To deactivate an active environment, use: # > source deactivate #
Aktiviranje i korištenje
Sljedeća naredba pokreće prethodno kreirani virtual environment:
[tsmolcic@teran ~]$ source activate py37
Naziv trenutno aktivnog virtualnog okruženja nalazi se u zagradama na početku svakog retka, a sljedeće naredbe potvrđuju da se radi o verziji Pythona unutar conda virtualnog okruženja:
(py37) [tsmolcic@teran ~]$ which python ~/.conda/envs/py37/bin/python (py37) [tsmolcic@teran ~]$ python --version Python 3.7.3
Za pregled instaliranih paketa koristi se naredba:
(py37) [tsmolcic@teran ~]$ conda list # packages in environment at /home/tsmolcic/.conda/envs/py37: # # Name Version Build Channel ca-certificates 2019.5.15 0 certifi 2019.6.16 py37_0 libedit 3.1.20181209 hc058e9b_0 ...
a za instalaciju novih paketa:
(py37) [tsmolcic@teran ~]$ conda install numpy Solving environment: done ## Package Plan ## environment location: /home/tsmolcic/.conda/envs/py37 added / updated specs: - numpy The following packages will be downloaded: package | build ---------------------------|----------------- mkl_random-1.0.2 | py37hd81dba3_0 405 KB numpy-base-1.16.4 | py37hde5b4d6_0 4.4 MB numpy-1.16.4 | py37h7e9f1db_0 49 KB ------------------------------------------------------------ Total: 209.1 MB The following NEW packages will be INSTALLED: blas: 1.0-mkl ... Proceed ([y]/n)? y Downloading and Extracting Packages mkl_random-1.0.2 | 405 KB | ########################################################################################################### | 100% ... Preparing transaction: done Verifying transaction: done Executing transaction: done
Nisu svi Python paketi dostupni kao Conda paket. Međutim, unutar conda virtualnog okruženja, za instaliranje Python paketa može se koristiti i pip.
Deaktiviranje
Deaktiviranje trenutno aktivnog okruženja obavlja se naredbom:
(py37) [tsmolcic@teran ~]$ source deactivate [tsmolcic@teran ~]$ module unload conda [tsmolcic@teran ~]$ python --version Python 2.7.5 [tsmolcic@teran ~]$ which python /usr/bin/python
Ispis dostupnih virtualnih okruženja
Popis dostupnih virtualnih okruženja može se dobiti naredbom:
[tsmolcic@teran ~]$ conda env list # conda environments: # base /apps/qiime2/miniconda3 qiime2-2019.1 /apps/qiime2/miniconda3/envs/qiime2-2019.1 qiime2-2019.4 /apps/qiime2/miniconda3/envs/qiime2-2019.4 py37 /home/tsmolcic/.conda/envs/py37 test-env /home/tsmolcic/.conda/envs/test-env
Okruženja koja se nalaze su /apps/
direktoriju su instalirana od strane administratora klastera te su dostupna korisnicima, međutim korisnici nemaju mogućnost izmjena tih okruženja. Vlastita virtualna okruženja spremaju se u direktorij /home/$USER/.conda/envs/
te su vidljiva samo korisniku koji ih je kreirao.
Brisanje virtualnog okruženja
Brisanje postojećeg virtualnog okruženja obavlja se naredbom:
[tsmolcic@teran ~]$ conda env remove --name py37
Primjer pokretanja posla
#!/bin/bash #$ -N conda_posao #$ -cwd #$ -o output/ #$ -e output/ #$ -pe gpu 1 module load conda source activate py37 python moja_app.py source deactivate module unload conda