Créer son environnement Python

Nous encourageons vivement les utilisateurs à créer leur propre environnement Python avec la distribution Miniconda plutôt que d’utiliser les distributions Python centralisées disponibles avec les modules du cluster. Vous pouvez ainsi travailler avec les dernières mises à jour plus rapidement, obtenir des améliorations de performances et éviter d’éventuelles incompatibilités entre différents modules.

Avec Miniconda, vous pouvez créer votre propre environnement Python et y installer les packages dont vous avez besoin. Vous pouvez même répéter l’opération pour différents projets et ainsi avoir un environnement propre à chacun.

Miniconda est une version minimaliste de Anaconda et embarque un Python de base ainsi que le gestionnaire de packages Conda. Vous pouvez ensuite installer des packages supplémentaires en suivant la procédure ci-dessous.

Pré-requis

Pour utiliser les commandes de miniconda, il vous faut tout d’abord charger le module miniconda sur le nœud de login :

module load miniconda

Créer l’environnement

Créez l’environnement en lui donnant un nom (ici my_env) et en choisissant sa version de Python (ici 3.7) :

conda create --name my_env python=3.7  

Les environnements que vous créez sont par défaut ajoutés au dossier /home/$USER/.conda/envs

Vous pouvez aussi spécifier un autre emplacement. Par exemple pour partager un environnement avec les autres utilisateurs de votre projet, vous pouvez l’installer dans votre dossier partagé dans /workspace/votre_groupe :

 conda create python=3.7 --prefix /workspace/votre_groupe

Activer son environnement

# Si vous avez donné un nom à votre environnement :
conda activate my_env
# Si vous l'avez créé avec l'option prefix :
conda activate /workspace/votre_groupe

Ajouter un package

conda install package_name

Lister vos environnements

conda env list

L’astérisque devant l’un des environnements listés indique celui qui est actuellement utilisé.

Désactiver son environnement

conda deactivate

Supprimer un environnement

Ici, on supprime un environnement du nom de my_env :

conda env remove --name my_env

Exemple de job

#!/bin/sh
#SBATCH --job-name=python_job_conda
#SBATCH --time=0-00:03:00
#SBATCH --account=project_name
#SBATCH --output=my_job_output.txt

module purge
module load miniconda

conda activate /home/user1/.conda/envs/my_env
python /home/user1/jobs/my_code.py
conda deactivate