Création et gestion des environnements virtuels Python¶
Environnements virtuels¶
Python possède l'outil virtualenv
qui permet de créer des environnements virtuels à l'intérieur desquels vous pouvez installer les paquets Python. Ces environnements permettent de compartimenter les installations en fonction des besoins et d'y installer des versions spécifiques des paquets.
L'image suivante illustre les environnements virtuels Python :
On y voit trois environnements virtuels qui contiennent des paquets différents et de différentes versions. Ces environnements s'appuient sur des logiciels provenant des modules. Mais la plupart des modules Python sont installés via l'utilitaire pip
.
Puisqu'il peut exister une dépendance forte entre certaines librairies fournies par des modules et les paquets python installés, la bonne pratique est de toujours charger les mêmes modules qui ont été utilisés pour la création et l'installation de paquets dans un environnement virtuel Python.
Pour ce faire, l'ordre de création d'un environnement virtuel Python est comme suit :
Pour être certain que cet environnement soit pleinement fonctionnel lors de son utilisation ultérieure, il est important de respecter le même ordre de chargement, comme suit :
Information
Pour des raisons techniques, la gestion des environnements virtuels doit être effectuée sur le nœud frontal, dans une session Jupyter ou dans une session de la partition interactive.
Créer un environnement virtuel¶
Démarrer avec un environnement vierge :
Charger la version de python désirée et les autres modules requis :
Créer l'environnement virtuel :
Activer l'environnement virtuel :
Normalement l'invite de commande devrait être préfixée par le nom de votre environnement virtuel, par exemple :
On peut voir qu'il s'agit d'un environnement python avec les paquets de base :
Il est recommandé de mettre à jour le gestionnaire de paquets Python (pip
) :
Information
Pour des fins d'uniformité et de convention dans notre documentation, les environnements virtuels sont créés dans un dossier venvs
dans votre dossier personnel ($HOME
).
Cet emplacement peut être ajusté selon vos préférences.
Charger la version de Python désirée et autres modules si requis :
Information
Si vous prévoyez utiliser un environnement virtuel dans le JupyterLab, il est nécessaire de charger le module scipy-stack
.
Pour une procédure rapide et recommandée pour l'utilisation, consultez la page suivante: Environnements personnalisés dans JupyterLab
Chercher des paquets dans la wheelhouse¶
La plupart des modules Python installés via pip
sont des paquets binaires (wheels) provenant de ce qu'on appelle une wheelhouse.
Pour chercher des paquets dans la wheelhouse, il suffit d'utiliser la commande avail_wheels
.
Par défaut, celle-ci cherche la dernière version disponible parmi les paquets disponibles pour la version de Python actuellement chargée, ou sinon, pour toutes les versions de Python disponibles pour l'environnement standard courant.
Il est possible de chercher en spécifiant un nom précis :
Chercher un paquet dont le nom contient "cdf" (peu importe la casse) :
Installer des paquets à partir de la wheelhouse¶
Invoquer la commande pip install
avec l'option --no-index
afin de forcer l'utilisation de la wheelhouse.
Dernière version de pandas à partir de la wheelhouse :
Version particulière de SQLAlchemy
:
Pour installer plusieurs paquets, il est recommandé de tous les spécifier en même temps afin que la résolution de leur dépendances soit bien pris en compte :
Consulter les paquets qui sont actuellement installés :
Installer des paquets non présents dans la wheelhouse¶
Il suffit de ne pas utiliser l'option --no-index
à la commande pip install
. Ainsi, les paquets provenant de PyPI seront aussi recherchés.
Forcer l'installation de paquets provenant de PyPI¶
La résolution des dépendances des paquets privilégie les installations provenant de la wheelhouse. Il est possible que ça ne fonctionne pas pour les versions les plus récentes de certains paquets. Dans ce cas, retirer la variable d'environnement PYTHON_PATH
avant l'installation.
Utiliser un environnement virtuel¶
Charger l'environnement logiciel (modules) associé à cet environnement virtuel :
Activer l'environnement virtuel :