IMB > cellule > Calcul et Développement

modules python / conda "quick ref"

introduction à l’installation de modules python

connaître la version actuelle du python par défaut de votre environnement :

python --version
pip --version   # donne la version pip utilisée avec la version python courante

connaître la localisation des commandes :

which python
which pip

choisir la version X.Y de python et de pip utilisant ce python X.Y (parmi les versions installées)

pythonX.Y  mon_programme.py
pipX.Y          ...

si une seule version mineur Y, il peut suffire d’écrire :

pythonX   mon_programme.py
pipX           ...

executer un module python en spécifiant la version

pythonX.Y -m MODULE .... arguments ...

ex : équivalence

jupyter notebook
pythonX.Y  -m jupyter notebook

installer un package dans votre propre environnement utilisateur avec "- -user"
équivalence entre :

pipX.Y                     install --user PACKAGE
pythonX.Y -m pip install --user PACKAGE

pip a son propre numéro de version, indépendante de la version de python sous-jacente qui le fait tourner.

options de pip :

Installer des packages dans un environnement virtuel

Quand on a plusieurs codes nécessitant des versions différentes des mêmes packages, ou de façon générale, pour travailler de manière maîtrisée et reproductible, on peut se créer des environnements virtuels python :

# création de l'environnement
$ python3 -m venv  $HOME/mon-env-de-test  

# activation
$ source $HOME/mon-env-de-test/bin/activate                                                              

# installation dans cet environnement
(mon-env-de-test) [facq@devel02 ~]$ python3 -m pip install tensorflow      

# désactivation, retour à l'environnement python par défaut
$ deactivate                                                    

connaitre les numéros de version des packages installés

pip freeze
pipX.Y freeze

ou

pip list
pipX.Y list

ou sont stockés vos packages python personnels ?

$HOME/.local/lib/pythonX.Y/site-package/...

on peut repartir à zéro pour une certaine version python, en effaçant le son répertoire : (tous les modules installés en --user sont supprimés)

rm -rf $HOME/.local/lib/pythonX.Y

$HOME/.local/bin ...

$HOME/.bashrc
PATH="$HOME/.local/bin/:$PATH"

Anaconda, Miniconda, conda

Permet d’installer un ou plusieurs environnements python (et autres packages complémentaires ou sous-jacents) complets, totalement indépendants des pythons installés sur le système.

🚧⚠️🚧 l’outil "Mamba" (réimplémentation de conda - compatible) est beaucoup plus performant, notamment pour gérer les dépendances et résoudre les conflits de version.

💡Conseils :

Exemple avec anaconda3

il est généralement préférable de se créer et d’activer un environnement dédié (certaines opérations ne marchent pas bien si on n’est pas dans un environnement particulier)

nous allons créer un environnement baptisé chezmoi

conda create -y -n chezmoi

pour activer l’environnement chezmoi, afin que ce soit l’environnement courant, nous faisons ensuite :

conda activate chezmoi

une alternative consiste à préciser un chemin, en utilisant -p chemin au lieu de -n label , ce qui permet de préciser explicitement où vont être stockés les fichiers. Très pratique en cas de saturation d’un espace disque : (création puis activation)

conda create -y -p $HOME/chezmoi
conda activate       $HOME/chezmoi

on peut chercher des packages contenant certains motifs, exemple avec python puis cuda

conda search '*python*'
conda search '*cuda*'

puis les installer dans l’environnement courant :

conda install -y  python==3.8.13 cudatoolkit==11.3.1

Il est recommandé, pour des questions de compatibilité, d’installer avec conda tous les packages dont on a besoin. Mais, en dernier ressort, on peut utiliser pip comme ci-dessus pour installer les packages qui n’existerait pas dans l’univers conda.

pour lister les packages installés spécifiquement dans l’environnement courant :

conda list

Installer conda

Si conda n’est pas disponible ou trop vieux ou mal installé, vous pouvez installer conda chez vous.

Il faut choisir un endroit où vous avez suffisamment de la place (c’est assez gros).

# exemple pour PlaFRIM :
export CONDA_ROOT=/beegfs/$USER/conda
# ou exemple pour Curta :
export CONDA_ROOT=/scratch/$USER/conda
# ou exemple pour IMB :
export CONDA_ROOT=/scratch/imb/$USER/conda

puis installer :

curl --output Anaconda3-2022.10-Linux-x86_64.sh https://repo.anaconda.com/archive/Anaconda3-2022.10-Linux-x86_64.sh
bash Anaconda3-2022.10-Linux-x86_64.sh   -b -p $CONDA_ROOT

À faire à chaque fois pour utiliser ce conda :

source $CONDA_ROOT/etc/profile.d/conda.sh"
export PATH=$CONDA_ROOT/bin:$PATH

Installer mamba

Mamba est une version optimisée de conda, beaucoup plus rapide quand il y a beaucoup de dépendances à résoudre.

Il faut choisir un endroit où vous avez suffisamment de la place (c’est assez gros).

# exemple pour PlaFRIM :
export CONDA_ROOT=/beegfs/$USER/Mamba
# ou exemple pour Curta :
export CONDA_ROOT=/scratch/$USER/Mamba
# ou exemple pour IMB :
export CONDA_ROOT=/scratch/imb/$USER/Mamba

puis installer :

cd /tmp
wget "https://github.com/conda-forge/miniforge/releases/latest/download/Mambaforge-$(uname)-$(uname -m).sh"
bash Mambaforge-$(uname)-$(uname -m).sh -b -p $CONDA_ROOT
source $CONDA_ROOT/etc/profile.d/conda.sh

À faire à chaque fois pour utiliser ce mamba :

source $CONDA_ROOT/etc/profile.d/conda.sh"
export PATH=$CONDA_ROOT/bin:$PATH