Cette page décrit l'utilisation de Python pour vos besoins utilisateurs, à travers la distribution Anaconda. C'est une distribution Python indépendante de celle du système et intégrant de nombreux modules optionnels nécessaires dans un contexte scientifique. Elle permet aussi de :
- Bénéficier d'une version à jour, en particulier Python3, indépendamment de la version fournie par le système
- D'ajouter en tant qu'utilisateur les modules dont on a besoin, indépendamment de ce qui est installé en standard pour tous les utilisateurs, à travers la notion de Conda Environment.
Anaconda s'appuie sur un gestionnaire de packages appelé Conda qui dispose d'une documentation en ligne très complète. Cette page décrit quelques éléments spécifiques à l'installation LAL et les commandes utiles pour initialiser son propre environnement.
Contents
Utiliser Anaconda/Python au LAL
Au LAL, 2 versions de Anaconda sont disponibles, correspondant respectivement à Python2 et Python3. Seule la version Python3 est régulièrement maintenue, Le développement de Python2 étant arrêté depuis début 2020.
Avant de pouvoir utiliser Anaconda/Python, il faut activer Anaconda et l'environnement Python avec les commandes suivantes :
# Sélection de la version Anaconda à utiliser # (mettre 2 à la place de 3 pour utiliser Python2) # Exécuter conda.sh dans un shell Bash ou Zsh source /lal/anaconda/3/etc/profile.d/conda.csh # Activer l'environnement de base Python conda activate
Si l'environnement de base contient tous les modules dont vous avez besoin, il est possible de l'utiliser directement. Mais si vous souhaitez utiliser d'autres modules ou être sur que votre environnement ne changera pas, même s'il y a des mises à jour, il faut créer un Conda Environment comme indiqué ci-dessous.
Gérer son propre environnement
Pour plus d'information que les commandes données ci-dessous, voir la documentation officielle de Conda.
Définir l'emplacement des environnements
Un des avantages de Conda/Anaconda est de permettre de définir des environnements Python différents suivant les applications qu'on veut exécuter, avec dans chaque environnement des dépendances spécifiques. Cela permet d'éviter les conflits de dépendances entre applications. Il est donc recommandé de créer un environnement par application ou groupes d'applications. Les environnements sont normalement spécifiques à un utilisateur.
L'emplacement par défaut des environnements par défaut est normalement le home directory, ce qui n'est pas toujours souhaitable. En effet un environnement peut consommer un espace disque non négligeable. Il est donc conseillé de le mettre dans un espace de groupe hors du home directory, comme /exp/groupe. Pour vérifier le repertoire courant, utiliser :
conda config --show envs_dirs
Pour changer l'emplacement utilisé par défaut par la commande de création des environnement, utiliser la commande suivante qui ajoutera un répertoire en tête de la liste. Il est important de ne pas supprimer un répertoire qui pourrait contenir des environnements (et s'il est vide il n'y a aucun inconvénient à le laisser!). Le répertoire ajouté doit exister.
conda config --prepend envs_dirs /my/pref/env/dir
Créer un environnement
Pour créer son propre environnement la commande à utiliser est :
# Créer l'environnement (ici 'myenv'). Remplacer conda_modules par une liste de module, # par exemple python. conda create -n myenv conda_modules # Activer l'environnement créé conda activate myenv
Il est possible d'ajouter l'option --clone à la commande create pour créer un environnement qui duplique un autre environnement existant. Sauf cas particulier, ce n'est pas très conseillé car les 2 environnements deviennent liés alors que le but des environnements est en général de découpler les choses.
Lister les environnements disponibles et leur contenu
On peut voir la liste de tous les modules installés dans l'environnement courant avec :
conda list
Pour avoir la liste de tous les environnements disponibles (activables avec conda activate), il faut utiliser :
conda env list
Mettre à jour l'environnement
Une fois l'environnement créé, il est possible d'ajouter de nouveaux modules avec la commande conda install module : cela installe toutes les dépendances nécessaires. On peut imposer une version particulière du module (cela peut avoir un impact sur d'autres dépendances) avec la syntaxe module=version, par exemple python=3.8.
Les mises à jour de l'environnement de base n'affecteront pas votre environnement. Cela signifie aussi que vous êtes responsables de sa mise à jour ! Elle s'effectue avec la commande conda update qui permet de mettre à jour soit un module particulier en indiquant son nom, soit l'ensemble de l'environnement en indiquant anaconda.
Supprimer un environnement
Pour supprimer un environnement, il faut utiliser la commande conda env remove et indiquer l'environnement à détruire avec l'option -n, par exemple
conda env remove -n mypython
Si l'environnement à détruire est l'environnement actif, il faut d'abord le désactiver (ce qui fait revenir dans l'environnement de base) :
conda deactivate