Python venv : comment créer, activer, désactiver et supprimer (2024)

Les environnements virtuels Python vous permettent d'installer des packages Python dans un emplacement isolé du reste de votre système au lieu de les installer à l'échelle du système. Voyons comment utiliser Python venv, abréviation de Python virtual environment, également abrégé enenvironnement virtuel.

Dans cet article, vous apprendrez :

  • Les avantages d'utiliser des environnements virtuels
  • Comment créer un venv
  • Comment l'activer et le désactiver
  • Différentes façons de supprimer ou de supprimer un venv
  • Comment fonctionne un venv en interne

Table des matières

  • 1 Pourquoi avez-vous besoin d'environnements virtuels
  • 2 Environnements virtuels vs autres options
  • 3 Comment créer un venv Python
  • 4 Activation de venv Python
  • 5 Comment fonctionne un Python venv
  • 6 Désactiver le Python venv
  • 7 Suppression d'un venv Python
  • 8 Suivez le cours
  • 9 En savoir plus
  • 10Conclusion

Pourquoi avez-vous besoin d'environnements virtuels

Il y a plusieurs raisons pour lesquelles les environnements virtuels sont une bonne idée, et c'est aussi pourquoi je vous en parle avant de passer à la partie où nous commençons à installer des packages tiers. Passons-les en revue un par un.

Prévention des conflits de version

Vous pourriez dire que l'installation de packages tiers à l'échelle du système est très efficace. Après tout, vous n'avez besoin de l'installer qu'une seule fois et vous pouvez utiliser le package à partir de plusieurs projets Python, ce qui vous fait gagner un temps précieux et de l'espace disque. Il y a un problème avec cette approche qui peut commencer à se déployer des semaines ou des mois plus tard, cependant.

Supposons que votre projet,Projet A, est écrit par rapport à une version spécifique debibliothèque X. À l'avenir, vous devrez peut-être mettre à niveau la bibliothèque X. Supposons, par exemple, que vous ayez besoin de la dernière version d'un autre projet que vous avez démarré, appelé Projet B. Vous mettez à niveau la bibliothèque X vers la dernière version et le projet B fonctionne correctement. Super! Mais une fois que vous avez fait cela, il s'avère que votreProjet Ale code s'est mal cassé. Après tout, les API peuvent changer de manière significative lors des mises à niveau de versions majeures.

Un environnement virtuel résout ce problème en isolant votre projet des autres projets et packages à l'échelle du système. Vous installez des packages dans cet environnement virtuel spécifiquement pour le projet sur lequel vous travaillez.

  • Python Fundamentals II : modules, packages, environnements virtuels (2023)

    VenteProduit en vente

    49.00

    5,00 out of 5

Facile à reproduire et à installer

Les environnements virtuels facilitent la définition et l'installation des packages spécifiques à votre projet. Utilisant unexigences.txtfichier, vous pouvez définir des numéros de version exacts pour les packages requis afin de vous assurer que votre projet fonctionnera toujours avec une version testée avec votre code. Cela aide également les autres utilisateurs de votre logiciel puisqu'un environnement virtuel aide les autres à reproduire l'environnement exact pour lequel votre logiciel a été conçu.

Fonctionne partout, même lorsqu'il n'est pas administrateur (root)

Si vous travaillez sur un hôte partagé, comme ceux d'une université ou d'un fournisseur d'hébergement Web, vous ne pourrez pas installer de packages à l'échelle du système car vous n'avez pas les droits d'administrateur pour le faire. Dans ces endroits, un environnement virtuel vous permet d'installer tout ce que vous voulez localement dans votre projet.

Environnements virtuels vs autres options

Il existe d'autres options pour isoler votre projet :

  1. Dans le cas le plus extrême, vous pourriez acheter un deuxième PC et y exécuter votre code. Problème résolu ! C'était quand même un peu cher !
  2. Une machine virtuelle est une option beaucoup moins chère, mais nécessite toujours l'installation d'un système d'exploitation complet - un peu de gaspillage également dans la plupart des cas d'utilisation.
  3. Vient ensuite la conteneurisation, avec Docker et Kubernetes. Ceux-ci peuvent être très puissants et constituent une bonne alternative.

Pourtant, il existe de nombreux cas où nous créons simplement de petit* projets ou des scripts ponctuels. Ou peut-être que vous ne voulez tout simplement pas conteneuriser votre application. C'est une autre chose que vous devez apprendre et comprendre, après tout. Quelle que soit la raison, les environnements virtuels sont un excellent moyen d'isoler les dépendances de votre projet.

Comment créer un venv Python

Il existe plusieurs façons de créer un environnement virtuel Python, selon la version de Python que vous exécutez.

Avant de poursuivre votre lecture, je souhaite vous indiquer deux autres outils,Poésie PythonetPipenv. Ces deux outils combinent les fonctionnalités des outils que vous êtes sur le point d'apprendre : virtualenv et pip. En plus de cela, ils ajoutent plusieurs extras, notamment leur capacité à résoudre correctement les dépendances.

Pour mieux comprendre les environnements virtuels, je vous recommande d'abord d'apprendre les bases en utilisant cet article. Je veux juste m'assurer que vous savez qu'il existe de meilleures façons de gérer vos packages, vos dépendances et vos environnements virtuels.

Python 3.4 et supérieur

Si vous utilisez Python 3.4+, vous pouvez utiliser le module venv intégré à Python :

python -m venv 

Cette commande crée un venv dans le répertoire spécifié et y copie également pip. Si vous ne savez pas comment appeler le répertoire :venvest une option courante ; cela ne laisse personne deviner ce que c'est. Donc la commande, dans ce cas, deviendrait :

python -m venv venv

Un peu plus loin dans cet article, nous allons nous intéresser de près au répertoire qui vient d'être créé. Mais regardons d'abord comment activer cet environnement virtuel.

Toutes les autres versions de Python

L'alternative qui fonctionne pour n'importe quelle version de Python consiste à utiliser le package virtualenv. Vous devrez peut-être d'abord l'installer avecinstallation de pip:

pip installer virtualenv

Une fois installé, vous pouvez créer un environnement virtuel avec :

virtualenv [répertoire]

Activation de venv Python

La façon dont vous activez votre environnement virtuel dépend du système d'exploitation que vous utilisez.

Activation de Windows venv

Pour activer votre venv sous Windows, vous devez exécuter un script qui est installé par venv. Si vous avez créé votre venv dans un répertoire appelémonenv, la commande serait :

# Dans cmd.exevenv\Scripts\activate.bat# Dans PowerShellvenv\Scripts\Activate.ps1

Activation Linux et MacOS venv

Sous Linux et MacOS, nous activons notre environnement virtuel avec la commande source. Si vous avez créé votre venv dans lemonvenvrépertoire, la commande serait :

$ source myvenv/bin/activate

C'est ça! Nous sommes prêts à basculer ! Tu peux maintenantinstaller des packages avec pip, mais je vous conseille de continuer à lire pour mieux comprendre le venv d'abord.

Comment fonctionne un Python venv

Lorsque vous activez un environnement virtuel, votreCHEMINvariable est modifiée. Sous Linux et MacOS, vous pouvez le voir par vous-même en imprimant le chemin avececho $CHEMIN. Sous Windows, utilisezécho %CHEMIN%(dans cmd.exe) ou$Env:Chemin(dans PowerShell). Dans mon cas, sous Windows, cela ressemble à ceci :

C:\Users\erik\Dev\venv\Scripts;C:\Program Files\PowerShell\7;C:\Program Files\AdoptOpen....

C'est une longue liste, et je n'en ai montré que le début. Comme vous pouvez le voir, le répertoire Scripts de mon venv est placé devant tout le reste, remplaçant ainsi tous les logiciels Python à l'échelle du système.

Alors que fait cette variable PATH ?

Lorsque vous entrez une commande introuvable dans le répertoire de travail actuel, votre système d'exploitation commence à rechercher tous les chemins dans la variable PATH. C'est pareil pour Python. Lorsque vous importez une bibliothèque, Python recherche dans votre PATH les emplacements des bibliothèques. Et c'est là que notre venv-magic se produit : si votre venv est là devant tous les autres chemins, le système d'exploitation y regardera d'abord avant de regarder les répertoires à l'échelle du système comme /usr/bin. Par conséquent, tout ce qui est installé dans notre venv est trouvé en premier, et c'est ainsi que nous pouvons remplacer les packages et les outils à l'échelle du système.

Qu'y a-t-il à l'intérieur d'un venv ?

Si vous regardez dans le répertoire de votre venv, vous verrez quelque chose comme ceci sous Windows :

.├── Include├── Lib│ └── site-packages├── pyvenv.cfg└── Scripts ├── activate ├── activate.bat ├── Activate.ps1 ├── deactivate.bat ├─ ─ pip3.10.exe ├── pip3.exe ├── pip.exe ├── python.exe └── pythonw.exe

Et sous Linux et MacOS :

Python venv: How To Create, Activate, Deactivate, And Delete (2)

Tu peux voir ça:

  • La commande Python est disponible en tant que python et python3 (sur Linux et MacOS), et la version est épinglée à la version avec laquelle vous avez créé le venv en créant un lien symbolique vers celui-ci.
  • Sous Windows, le binaire Python est copié dans le répertoire des scripts.
  • Tous les packages que vous installez se retrouvent dans le répertoire site-packages.
  • Nous avons des scripts d'activation pour plusieurs types de shell (bash, csh, fish, PowerShell)
  • Pip est disponible sous pip et pip3, et encore plus précisément sous le nompip3.7parce que j'avais une installation Python 3.7 au moment d'écrire ceci.

Désactiver le Python venv

Une fois que vous avez fini de travailler sur votre projet, c'est une bonne habitude de désactiver son venv. En désactivant, vous quittez l'environnement virtuel. Sans désactiver votre venv, tout autre code Python que vous exécutez, même s'il se trouve en dehors de votre répertoire de projet, s'exécutera également à l'intérieur du venv.

Heureusem*nt, désactiver votre environnement virtuel ne pourrait pas être plus simple. Entrez simplement ceci :désactiver. Il fonctionne de la même manière sur tous les systèmes d'exploitation.

Supprimer un venv Python

Vous pouvez supprimer complètement un environnement virtuel, mais la manière dont vous procédez dépend de ce que vous avez utilisé pour créer le fichier venv. Examinons les options les plus courantes.

Supprimer un venv créé avec Virtualenv ou python -m venv

Il n'y a pas de commande spéciale pour supprimer un environnement virtuel si vous avez utiliséenvironnement virtueloupython -m venvpour créer votre environnement virtuel, comme le montre cet article. Lors de la création de virtualenv, vous lui avez donné un répertoire pour créer cet environnement.

Si vous voulez supprimer ce virtualenv,désactiverd'abord, puis supprimez le répertoire avec tout son contenu. Sur les systèmes de type Unix et dans Windows Powershell, vous feriez quelque chose comme ceci :

deactivate# Si votre environnement virtuel se trouve dans un répertoire nommé 'venv' :rm -r venv

Supprimer un venv avec Pipenv

Si vous avez utiliséPipenvpour créer le venv, c'est beaucoup plus facile. Vous pouvez utiliser la commande suivante pour supprimer le venv actuel :

pipenv --rm

Assurez-vous d'être dans le répertoire du projet. En d'autres termes, le répertoire où se trouve lePipenvetPipenv.lockles fichiers résident. De cette façon, pipenv sait quel environnement virtuel il doit supprimer.

Si cela ne fonctionne pas, vous pouvez devenir un peu plus méchant et supprimer manuellement le venv. Tout d'abord, demandez à pipenv où se trouve le virtualenv réel avec la commande suivante :

pipenv --env/home/username/.local/share/virtualenvs/yourproject-IogVUtsM

Il affichera le chemin vers l'environnement virtuel et tous ses fichiers et ressemblera à l'exemple ci-dessus. L'étape suivante consiste à supprimer tout ce répertoire, et vous avez terminé.

Supprimer un venv avec poésie

Si vous avez créé le virtualenv avecPoésie, vous pouvez répertorier les venv disponibles avec la commande suivante :

liste d'env de poésie

Vous obtiendrez une liste comme celle-ci :

test-O3eWbxRl-py2.7test-O3eWbxRl-py3.6test-O3eWbxRl-py3.7 (Activé)

Vous pouvez supprimer l'environnement que vous voulez avec lepoésie env supprimercommande. Vous devez spécifier le nom exact de la sortie ci-dessus, par exemple :

poésie env supprimer test-O3eWbxRl-py3.7

Suivez le cours

Arrêtez de vous sentir comme un codeur vaudou et apprenez ce truc correctement une fois pour toutes. NotreCours sur les bases de Pythonexplique en détailModules et forfaits,Environnements virtuels,etGestionnaires de paquets. Essayez-le, je vous assure que vous l'aimerez!

Apprendre encore plus

Cet article fait partie d'unTutoriel Python. Vous pouvez parcourir le tutoriel avec les boutons de navigation en haut et en bas de l'article ou utiliser le menu de navigation. Vous voulez en savoir plus ? Voici quelques excellentes lectures de suivi :

  • Ensuite :comment installer des packages avec pipà l'intérieur de votre venv
  • Pipenvest une meilleure façon de gérer vos venv et vos packages.
  • Apprenez lecommandes Linux les plus courantes(comme cd, mkdir, pwd, etc.)
  • Documentation officielle de venv: Si vous voulez connaître tous les détails et les options de ligne de commande

Conclusion

Vous avez appris à créer, activer, désactiver et supprimer des environnements virtuels. Nous avons également regardé derrière les rideaux pour voir pourquoi et comment fonctionne un venv. Maintenant que vous savez comment créer un venv, vous devez apprendrecomment installer des packagesà l'intérieur. Après cela, je vous recommande fortement de vous renseigner surPipenvouPoésie. Ces outils combinent la gestion de votre environnement virtuel avec une gestion appropriée des packages et des dépendances.

Nos cours premium offrent une expérience utilisateur supérieure avec de petites leçons faciles à digérer, un suivi des progrès, des quiz pour tester vos connaissances et des séances d'entraînement. Chaque cours vous rapportera un certificat de cours téléchargeable.

Cet article fait partie de mon tutoriel Python. Vous pouvez vous diriger vers ledébut du tuto ici.Vous pouvez naviguer dans ce didacticiel à l'aide des boutons situés en haut et en bas des articles.Pour obtenir un aperçu de tous les articles du didacticiel, veuillez utiliser le menu déroulant en haut.

Python venv : comment créer, activer, désactiver et supprimer (2024)

FAQs

Comment activer le venv ? ›

Exécutez l'application dans un environnement virtuel

Pour créer un environnement, utilisez la commande python -m venv <environment name> . Pour activer l'environnement, exécutez source env/bin/activate (si vous êtes sous Windows, la commande sera env\Scripts\activate.

Comment désactiver un environnement virtuel Python ? ›

Vous pouvez désactiver un environnement virtuel en écrivant « deactivate » dans votre shell. Le mécanisme est spécifique à chaque plateforme : Par exemple, le script d'activation pour Bash défini une fonction « deactivate », alors que sur Windows il y a des scripts séparés appelés deactivate.

Comment supprimer un environnement virtuel ? ›

Pour supprimer une environnement virtuel, supprimez juste son dossier. (Dans ce cas, ce serait rm -rf venv .)

Comment creer un environnement virtuel en Python ? ›

Pour créer un environnement virtuel, il suffit de lancer le module venv en lui passant en paramètre le chemin dans lequel seront stockés la configuration et les dépendances de cet environnement. Le choix de l'interpréteur Python que vous utilisez pour lancer le module venv est important.

References

Top Articles
Latest Posts
Article information

Author: Dean Jakubowski Ret

Last Updated:

Views: 6405

Rating: 5 / 5 (70 voted)

Reviews: 93% of readers found this page helpful

Author information

Name: Dean Jakubowski Ret

Birthday: 1996-05-10

Address: Apt. 425 4346 Santiago Islands, Shariside, AK 38830-1874

Phone: +96313309894162

Job: Legacy Sales Designer

Hobby: Baseball, Wood carving, Candle making, Jigsaw puzzles, Lacemaking, Parkour, Drawing

Introduction: My name is Dean Jakubowski Ret, I am a enthusiastic, friendly, homely, handsome, zealous, brainy, elegant person who loves writing and wants to share my knowledge and understanding with you.