Python

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.

Pour utiliser Anaconda, il faut se connecter sur une machine CentOS 7, par exemple lx6.
Cette page décrit l'utilisation de Anaconda pour Python mais Anaconda/Conda peut être utilisé pour gérer de nombreux autres environnements scientifiques (par exemple R). Au LAL, il est aussi utilisé pour gérer l'installation de ROOT6.

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.

Pour toutes les commandes indiquées ci-dessous, il est possible d'ajouter l'option --help pour obtenir de l'aide sur la syntaxe précise et les options de la commande.

Définir l'emplacement des environnements

Suivant ce qu'on y met et la façon dont on le gère, un environnement peut consommer un espace disque non négligeable. L'emplacement par défaut des environnements par défaut est normalement le home directory, ce qui n'est pas toujours souhaitable. 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 en optimisant l'espace utilisé et en évitant de télécharger tous les modules, la commande à utiliser est :

# Créer l'environnement (ici 'myenv')
conda create -n myenv --clone base
# Activer l'environnement créé
conda activate myenv

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