Introduction
Les projets Python nécessitent souvent des versions de paquets différentes. Un environnement virtuel permet à un projet de disposer de son propre interpréteur Python et de son propre répertoire de paquets. Ainsi, l'installation d'un paquet pour un projet n'affecte ni l'environnement Python global, ni les autres projets.
Dans ce laboratoire, vous allez créer un environnement virtuel à l'aide du module intégré venv, l'activer, y installer un paquet, puis créer un second environnement pour confirmer que ces environnements sont bien isolés les uns des autres. Toutes les opérations se dérouleront dans /home/labex/project.
Créer un environnement virtuel pour le projet
Dans cette étape, vous allez créer un environnement virtuel pour un projet Python. Un environnement virtuel n'est rien d'autre qu'un répertoire contenant un exécutable Python, des scripts d'activation et son propre espace d'installation de paquets.
Commencez par vous déplacer dans l'espace de travail du projet. Conserver les fichiers du laboratoire sous /home/labex/project permet de retrouver facilement l'environnement et de séparer votre travail des fichiers système.
cd /home/labex/project
Avant de créer l'environnement, vérifiez la version de Python disponible sur le système. La commande python3 --version affiche la version de l'interpréteur que venv utilisera.
python3 --version
Vous devriez voir une sortie Python 3 similaire à celle-ci :
Python 3...
Créez maintenant un environnement virtuel nommé project-env. L'option -m venv indique à Python d'exécuter son module intégré venv comme un outil en ligne de commande, et project-env est le répertoire qui contiendra l'environnement.
python3 -m venv project-env
Listez le contenu du nouveau répertoire pour observer la structure créée par venv.
ls project-env
Les entrées exactes peuvent varier légèrement, mais vous devriez voir des fichiers et dossiers tels que :
bin
include
lib
pyvenv.cfg
Le fichier pyvenv.cfg enregistre la manière dont l'environnement a été créé. Inspectez-le dès maintenant.
cat project-env/pyvenv.cfg
Recherchez la ligne include-system-site-packages = false. Ce paramètre signifie que cet environnement ne partage pas automatiquement les paquets Python installés globalement.
Activer l'environnement et installer un paquet
Dans cette étape, vous allez activer project-env et y installer un paquet. L'activation modifie les variables d'environnement du shell afin que les commandes telles que python et pip pointent en priorité vers l'environnement virtuel.
Assurez-vous d'être toujours dans l'espace de travail du projet.
cd /home/labex/project
Utilisez source pour exécuter le script d'activation dans votre shell actuel. C'est important car un script enfant ne peut pas modifier le shell parent, alors que source peut mettre à jour le shell dans lequel vous tapez.
source project-env/bin/activate
Après l'activation, l'invite de commande du shell commence généralement par (project-env). Confirmez que python pointe désormais vers l'intérieur de l'environnement virtuel en affichant deux chemins depuis Python. sys.prefix correspond à l'environnement actif, tandis que sys.base_prefix correspond à l'installation Python de base.
python -c "import sys; print(sys.prefix); print(sys.base_prefix)"
La première ligne doit correspondre à votre environnement virtuel, et la seconde à l'emplacement du Python système :
/home/labex/project/project-env
/usr...
Installez un petit paquet nommé colorama dans l'environnement actif. L'exécution de python -m pip utilise le pip appartenant à l'interpréteur Python actuellement actif.
python -m pip install colorama==0.4.6
Une fois l'installation terminée, pip devrait indiquer que colorama a été installé avec succès.
Vérifiez le paquet depuis Python en l'important et en affichant sa version.
python -c "import colorama; print(colorama.__version__)"
La sortie devrait être :
0.4.6
Vous pouvez quitter l'environnement virtuel avec deactivate. Cela rétablit le comportement de recherche de python et pip vers l'environnement shell normal.
deactivate
Créer un second environnement isolé
Dans cette étape, vous allez créer un autre environnement virtuel et le comparer à project-env. Des environnements distincts peuvent utiliser le même interpréteur Python de base tout en conservant leurs paquets installés séparément.
Retournez dans l'espace de travail du projet.
cd /home/labex/project
Recherchez l'exécutable python3 du système. La commande command -v affiche le chemin que le shell utilisera pour une commande donnée.
command -v python3
Le chemin est généralement :
/usr/bin/python3
Créez un second environnement nommé tools-env. L'option --prompt tools-env définit le texte de l'invite d'activation, ce qui est utile lorsque vous travaillez avec plusieurs environnements.
python3 -m venv --prompt tools-env tools-env
Comparez maintenant les préfixes des deux environnements. Chaque commande exécute l'exécutable Python à l'intérieur d'un environnement virtuel différent et affiche son préfixe actif.
project-env/bin/python -c "import sys; print(sys.prefix)"
tools-env/bin/python -c "import sys; print(sys.prefix)"
Vous devriez voir deux répertoires différents :
/home/labex/project/project-env
/home/labex/project/tools-env
Enfin, vérifiez si colorama est disponible dans tools-env. Vous avez installé colorama uniquement dans project-env, donc le second environnement ne devrait pas le trouver.
tools-env/bin/python -c "import importlib.util; print(importlib.util.find_spec('colorama'))"
La sortie attendue est :
None
Cela confirme que les paquets installés dans un environnement virtuel n'apparaissent pas automatiquement dans un autre.
Résumé
Vous avez créé un environnement virtuel Python, inspecté sa configuration, l'avez activé, y avez installé un paquet et avez créé un second environnement pour confirmer l'isolation des paquets. Vous vous êtes également exercé à utiliser python3 -m venv, source, python -m pip et les chemins directs vers les exécutables Python des environnements pour comprendre quel interpréteur est en cours d'exécution.



