Supprimer et recréer un environnement virtuel Python

1. À propos de la suppression et de la recréation d'un environnement virtuel Python

Un environnement virtuel Python est un environnement isolé contenant son propre interpréteur Python et les packages nécessaires à un projet. Il est généralement créé avec le module venv et stocké dans un dossier portant un nom tel que .venv, venv ou env.

Contrairement aux fichiers sources du projet, le dossier de l'environnement virtuel est généralement considéré comme recréable. Lorsqu'un environnement devient incorrect, contient trop de packages inutiles, utilise une mauvaise version de Python ou présente des problèmes de dépendances, il est souvent plus simple de le supprimer puis de le reconstruire proprement.

Le programme suivant permet de connaître l'interpréteur Python actuellement utilisé et de déterminer si Python fonctionne dans un environnement virtuel.

Sortie possible :

Lorsque sys.prefix et sys.base_prefix sont différents, le programme est généralement exécuté depuis un environnement virtuel créé avec venv.

2. Pourquoi supprimer et recréer un environnement virtuel ?

Un environnement virtuel peut être supprimé et recréé pour de nombreuses raisons. Cette opération est notamment utile lorsque les dépendances sont devenues incohérentes, lorsqu'un grand nombre de packages inutiles ont été installés ou lorsqu'on souhaite repartir d'un environnement propre.

La commande suivante permet d'afficher les packages actuellement installés dans l'environnement actif avant de décider de le reconstruire.

Sortie possible :

Si l'environnement contient de nombreux packages qui ne sont plus nécessaires au projet, sa recréation peut être plus simple que la désinstallation manuelle de chaque package.

La commande pip check permet également de rechercher certains problèmes de dépendances dans l'environnement courant.

Sortie possible :

Si pip signale des dépendances incompatibles, il peut être intéressant de reconstruire l'environnement à partir d'un fichier requirements.txt correctement défini.

3. Sauvegarder les dépendances avant de supprimer l'environnement

Avant de supprimer un environnement virtuel contenant des packages utiles, il est important de conserver la liste des dépendances nécessaires au projet. La commande pip freeze permet d'afficher les distributions installées dans un format exploitable par pip.

La commande suivante affiche les packages de l'environnement actif avec leurs versions.

Sortie possible :

Nous pouvons enregistrer automatiquement cette liste dans un fichier requirements.txt grâce à la redirection > du terminal.

Sortie :

Sous Windows, nous pouvons vérifier le contenu du fichier avec la commande suivante.

Sortie possible :

Il est important d'effectuer cette sauvegarde avant la suppression du dossier .venv lorsque nous souhaitons reconstruire le même ensemble de dépendances.

4. Désactiver l'environnement virtuel avant sa suppression

Si l'environnement virtuel est actuellement activé dans le terminal, il est préférable de le désactiver avant de supprimer son dossier. La commande deactivate permet de quitter l'environnement actif sous Windows, Linux et macOS.

Supposons que l'invite de commandes indique que l'environnement .venv est actuellement actif. La commande suivante permet de le désactiver.

Sortie possible :

La disparition de (.venv) dans l'invite du terminal indique que l'environnement n'est plus activé dans cette session.

Nous pouvons ensuite vérifier quel interpréteur est utilisé avec la commande suivante.

Sortie possible :

Le chemin ne pointe plus vers .venv\Scripts\python.exe, ce qui confirme que l'interpréteur de l'environnement virtuel n'est plus utilisé par cette commande.

5. Supprimer un environnement virtuel sous Windows

Un environnement créé avec venv est essentiellement représenté par son dossier. Pour le supprimer, il suffit donc de supprimer ce dossier. Avant toute opération, il faut vérifier que le nom indiqué correspond bien au dossier de l'environnement virtuel et non au dossier contenant le projet lui-même.

Suppression avec CMD

Dans l'invite de commandes Windows, si l'environnement est stocké dans un dossier nommé .venv, la commande suivante supprime ce dossier et tout son contenu.

Sortie possible :

Suppression avec PowerShell

Avec PowerShell, la commande Remove-Item peut supprimer récursivement le dossier de l'environnement virtuel.

Sortie possible :

Après la suppression, nous pouvons vérifier dans CMD que le dossier .venv n'existe plus.

Sortie possible :

La suppression du dossier .venv ne supprime pas les fichiers sources du projet, à condition que ceux-ci soient bien stockés en dehors de ce dossier.

6. Supprimer un environnement virtuel sous Linux et macOS

Sous Linux et macOS, un environnement virtuel peut également être supprimé en supprimant simplement son dossier. Il faut là encore vérifier attentivement le chemin avant d'exécuter une commande de suppression récursive.

Si l'environnement est nommé .venv et se trouve dans le dossier courant, la commande suivante permet de le supprimer.

Sortie possible :

Nous pouvons ensuite vérifier si le dossier existe toujours avec la commande suivante.

Sortie possible :

La commande rm -rf étant récursive et ne demandant normalement pas de confirmation pour chaque fichier, il est indispensable de vérifier le nom du dossier avant son exécution.

7. Recréer un nouvel environnement virtuel avec venv

Une fois l'ancien environnement supprimé, nous pouvons en créer un nouveau avec le module venv fourni avec Python. Il est recommandé d'exécuter la commande depuis le dossier du projet.

La commande suivante crée un nouvel environnement virtuel dans un dossier nommé .venv.

Sortie :

Sous Windows avec CMD, le nouvel environnement peut ensuite être activé avec la commande suivante.

Sortie possible :

Sous Windows PowerShell, nous utilisons le script Activate.ps1.

Sortie possible :

Sous Linux ou macOS, la commande suivante active le nouvel environnement.

Sortie possible :

Nous disposons maintenant d'un nouvel environnement virtuel indépendant de celui qui vient d'être supprimé.

8. Réinstaller les dépendances avec requirements.txt

Le nouvel environnement ne contient pas automatiquement tous les packages qui étaient présents dans l'ancien. Si nous avons sauvegardé les dépendances dans requirements.txt, nous pouvons les réinstaller avec une seule commande pip.

Après activation du nouvel environnement, la commande suivante installe les dépendances déclarées dans requirements.txt.

Sortie possible :

Après l'installation, pip list permet de vérifier les packages disponibles dans le nouvel environnement.

Sortie possible :

Nous pouvons également comparer l'état actuel de l'environnement avec les dépendances enregistrées en exécutant pip freeze.

Sortie possible :

Le nouvel environnement peut ainsi retrouver les dépendances enregistrées sans qu'il soit nécessaire de conserver ou de copier l'ancien dossier .venv.

9. Vérifier le nouvel environnement virtuel

Après avoir recréé l'environnement et réinstallé ses dépendances, il est conseillé de vérifier que la commande python utilise bien l'interpréteur du nouveau dossier .venv.

Le programme suivant affiche le chemin de l'interpréteur et vérifie si l'exécution s'effectue dans un environnement virtuel.

Sortie possible :

Nous pouvons ensuite demander à pip de vérifier si les dépendances installées présentent des incompatibilités connues par son analyse des métadonnées.

Sortie possible :

Enfin, il est recommandé d'exécuter le programme principal ou les tests du projet. Dans l'exemple suivant, nous supposons que l'application possède un fichier main.py.

Sortie possible :

La recréation est réellement validée lorsque le projet fonctionne correctement avec le nouvel environnement et les dépendances réinstallées.

10. À retenir !

La suppression puis la recréation d'un environnement virtuel Python constitue une opération courante pour repartir d'un environnement propre. Un environnement créé avec venv étant recréable, il est généralement inutile de conserver ou de transférer son dossier lorsque les dépendances du projet sont correctement documentées.

  • Un environnement virtuel est souvent placé dans un dossier nommé .venv, venv ou env.
  • Avant de le supprimer, il faut identifier avec certitude le dossier correspondant à l'environnement.
  • python -m pip freeze > requirements.txt permet de sauvegarder l'état des packages installés avant la suppression.
  • deactivate permet de désactiver l'environnement actuellement actif.
  • Sous Windows CMD, rmdir /s /q .venv permet de supprimer le dossier .venv.
  • Sous PowerShell, Remove-Item -Recurse -Force .venv permet de supprimer l'environnement.
  • Sous Linux et macOS, rm -rf .venv permet de supprimer le dossier de l'environnement.
  • python -m venv .venv permet de créer un nouvel environnement virtuel.
  • python -m pip install -r requirements.txt permet de réinstaller les dépendances sauvegardées.
  • python -m pip check et l'exécution des tests du projet permettent de vérifier le nouvel environnement.

Le processus suivant résume les principales commandes utilisées sous Windows avec CMD pour sauvegarder les dépendances, désactiver et supprimer l'ancien environnement, puis en créer un nouveau.

Sortie possible :

Sous Linux ou macOS, le principe est identique mais les commandes de suppression et d'activation sont adaptées au système.

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 *