Activer et désactiver un environnement virtuel Python

1. À propos de l'activation d'un environnement virtuel Python

Après avoir créé un environnement virtuel Python avec le module venv, nous souhaitons généralement l'activer avant de travailler sur notre projet. Cette activation permet notamment aux commandes python et pip exécutées dans le terminal d'utiliser en priorité les programmes associés à l'environnement virtuel.

Supposons que nous ayons créé dans notre projet un environnement virtuel nommé .venv avec la commande suivante.

Sortie :

Le dossier .venv contient maintenant les éléments nécessaires à l'environnement virtuel. La commande utilisée pour l'activer dépend ensuite du système d'exploitation et du terminal employés.

2. Comprendre ce que fait l'activation d'un environnement virtuel

L'activation d'un environnement virtuel ne lance pas une nouvelle copie de Python en arrière-plan. Elle modifie principalement certaines variables du terminal courant afin que le dossier contenant les exécutables de l'environnement soit recherché en priorité.

Avant l'activation, le programme suivant peut afficher l'interpréteur Python installé globalement sur l'ordinateur.

Sortie possible sous Windows :

Après l'activation de .venv, le même programme peut pointer vers l'interpréteur présent dans l'environnement virtuel.

Sortie possible sous Windows :

Le changement de chemin montre que nous utilisons maintenant le Python de l'environnement virtuel. Les modifications réalisées par l'activation concernent le terminal courant et disparaissent notamment lorsque l'environnement est désactivé ou que le terminal est fermé.

3. Activer un environnement virtuel sous Windows avec CMD

Sous Windows, la commande d'activation dépend du terminal utilisé. Dans l'Invite de commandes CMD, le script d'activation se trouve dans le dossier Scripts de l'environnement virtuel.

Si notre environnement s'appelle .venv, la commande suivante permet de l'activer depuis le dossier du projet.

Sortie possible :

Le nom (.venv) apparaît généralement au début de l'invite de commandes. Il constitue un indicateur visuel permettant de constater que l'environnement virtuel est actif.

Si l'environnement a été créé sous le nom venv au lieu de .venv, il suffit naturellement d'utiliser ce nom dans le chemin.

Sortie possible :

Le nom affiché devant l'invite correspond alors à l'environnement venv.

4. Activer un environnement virtuel sous Windows avec PowerShell

Avec PowerShell, le script utilisé pour l'activation porte le nom Activate.ps1. Il se trouve également dans le dossier Scripts de l'environnement virtuel.

Depuis le dossier du projet, la commande suivante active l'environnement .venv dans PowerShell.

Sortie possible :

Le préfixe (.venv) indique que l'environnement est actif dans la session PowerShell courante.

Il arrive cependant que PowerShell interdise l'exécution du script et affiche un message concernant la politique d'exécution. Dans ce cas, le problème ne vient pas de venv lui-même mais des règles de sécurité configurées dans PowerShell.

Une autre possibilité consiste à utiliser directement l'interpréteur de l'environnement sans activer celui-ci. Le programme suivant demande explicitement au Python présent dans .venv d'afficher sa version.

Sortie possible :

L'activation facilite donc le travail dans le terminal, mais elle n'est pas indispensable pour exécuter l'interpréteur d'un environnement lorsque son chemin complet est indiqué.

5. Activer un environnement virtuel sous Linux et macOS

Sous Linux et macOS, les scripts de l'environnement virtuel se trouvent généralement dans le dossier bin au lieu du dossier Scripts utilisé sous Windows.

Dans un shell tel que bash ou zsh, la commande suivante active l'environnement .venv.

Sortie possible :

Comme sous Windows, le nom de l'environnement apparaît généralement devant l'invite du terminal.

La commande abrégée . peut également être utilisée à la place de source dans les shells compatibles.

Sortie possible :

Les deux commandes permettent donc d'activer le script correspondant dans le shell courant.

6. Vérifier que l'environnement virtuel est actif

L'apparition de (.venv) devant l'invite constitue une indication pratique, mais il existe des méthodes plus fiables pour vérifier quel environnement Python est réellement utilisé.

La variable sys.executable permet d'afficher le chemin exact de l'interpréteur Python qui exécute le programme.

Sortie possible sous Windows :

La présence de .venv dans le chemin confirme ici que l'interpréteur appartient à notre environnement virtuel.

Nous pouvons également comparer sys.prefix et sys.base_prefix. Dans un environnement virtuel, ces deux valeurs sont normalement différentes.

Sortie possible :

Le test sys.prefix != sys.base_prefix constitue ainsi une méthode pratique pour déterminer depuis un programme Python s'il s'exécute dans un environnement virtuel.

Dans le terminal, nous pouvons également demander directement à Python où se trouve son exécutable.

Sortie possible sous Linux :

Cette commande est particulièrement utile pour vérifier rapidement l'environnement utilisé sans créer de fichier Python.

7. Utiliser Python et pip dans l'environnement actif

Une fois l'environnement activé, les commandes python et pip doivent normalement utiliser les exécutables associés à cet environnement. Il est toutefois pratique d'utiliser python -m pip, car cette syntaxe associe explicitement pip à l'interpréteur Python courant.

La commande suivante affiche la version et l'emplacement de pip utilisés dans l'environnement.

Sortie possible sous Windows :

Le chemin contient .venv, ce qui montre que pip appartient à notre environnement virtuel.

Nous pouvons ensuite afficher la liste des packages actuellement installés dans cet environnement.

Sortie possible :

La liste dépend naturellement des packages déjà installés. Tout nouveau package installé avec python -m pip install sera associé à cet environnement et non aux autres environnements virtuels du système.

8. Désactiver un environnement virtuel avec deactivate

Lorsque nous avons terminé notre travail, la commande deactivate permet de désactiver l'environnement virtuel et de restaurer le contexte précédent du terminal.

La commande suivante fonctionne après l'activation d'un environnement avec les scripts fournis par venv.

Sortie possible sous Windows :

Le préfixe (.venv) disparaît généralement de l'invite. Cela signifie que l'environnement n'est plus actif dans le terminal.

La désactivation ne supprime absolument pas le dossier .venv. Nous pouvons le constater en affichant son contenu sous Windows.

Sortie possible :

L'environnement existe toujours avec ses packages et sa configuration. deactivate sert uniquement à quitter son contexte d'utilisation dans le terminal courant.

9. Réactiver un environnement virtuel existant

Un environnement virtuel ne doit pas être recréé chaque fois que nous travaillons sur le projet. Après avoir fermé le terminal ou utilisé deactivate, il suffit normalement de revenir dans le dossier du projet puis de réactiver l'environnement existant.

Sous Windows avec l'Invite de commandes, nous pouvons par exemple revenir dans le projet puis activer .venv.

Sortie possible :

Sous Linux ou macOS, la réactivation du même environnement se fait avec le script situé dans bin.

Sortie possible :

Il est donc important de distinguer création et activation : python -m venv .venv crée l'environnement, tandis que le script activate permet de l'utiliser facilement dans une nouvelle session du terminal.

10. À retenir !

L'activation d'un environnement virtuel permet de travailler plus facilement avec l'interpréteur Python et les packages propres à un projet. Les commandes d'activation varient selon le système d'exploitation et le terminal, tandis que deactivate permet de quitter l'environnement actif.

  • Sous Windows CMD, l'environnement peut être activé avec .venv\Scripts\activate.bat.
  • Sous Windows PowerShell, nous pouvons utiliser .venv\Scripts\Activate.ps1.
  • Sous Linux et macOS, la commande courante est source .venv/bin/activate.
  • Le préfixe (.venv) apparaît généralement dans le terminal lorsque l'environnement est actif.
  • sys.executable indique l'interpréteur Python réellement utilisé.
  • sys.prefix permet de connaître le préfixe de l'environnement courant.
  • La comparaison sys.prefix != sys.base_prefix permet de vérifier depuis Python si un environnement virtuel est utilisé.
  • python -m pip permet d'utiliser pip avec l'interpréteur Python courant.
  • La commande deactivate quitte l'environnement sans le supprimer.
  • Un environnement déjà créé peut être réactivé autant de fois que nécessaire.

Le programme suivant permet finalement de vérifier de manière simple si Python s'exécute dans un environnement virtuel et d'afficher l'interpréteur actuellement utilisé.

Sortie possible :

 



 


Auteur : Younes Derfoufi
Lieu de travail : CRMEF OUJDA
Site Web : www.tresfacile.net
Chaine YouTube : https://www.youtube.com/user/InformatiquesFacile
Me contacter : https://www.tresfacile.net/me-contacter/


Leave a Reply

Your email address will not be published. Required fields are marked *