Qu'est-ce qu'un environnement virtuel ?
Un environnement virtuel est un environnement isolé pour un projet Python qui possède son propre ensemble de paquets installés. C'est comme une pièce séparée pour chaque projet, où seules les bibliothèques dont il a besoin vivent.
Pourquoi l'isolation est-elle nécessaire ?
Sans environnement virtuel, tous les paquets sont installés globalement dans le système. Cela conduit à des problèmes :
Conflits de versions. Différents projets peuvent nécessiter différentes versions de la même bibliothèque. Sans isolement, vous devrez choisir une version pour tous.
Pollution du système. Au fil du temps, de nombreux paquets inutilisés s'accumulent, ce qui les rend difficiles à suivre et à supprimer.
Problèmes de reproductibilité. Lorsqu'un collègue ou vous-même essayez de lancer un projet sur un autre ordinateur, il est difficile de comprendre quels paquets sont nécessaires.
Créons le premier environnement virtuel
Python est livré avec un module intégré venv, qui vous permet de créer des environnements virtuels sans installer d'outils supplémentaires.
Ouvrez le terminal dans le dossier de votre projet et exécutez la commande :
python -m venv venvIci, le premier mot venv est le nom du module, et le second est le nom du dossier pour l'environnement. Vous pouvez utiliser n'importe quel nom, mais venv ou .venv sont devenus la norme de facto.
Après avoir exécuté la commande, le dossier venv apparaîtra avec la structure suivante :
venv/
├── bin/ # scripts d'activation (sur Windows — Scripts/)
├── include/ # fichiers d'en-tête
├── lib/ # paquets installés
└── pyvenv.cfg # configuration de l'environnementActivation et désactivation
Il ne suffit pas de créer un environnement, il faut l'activer. Après l'activation, toutes les commandes pip et python fonctionneront dans cet environnement.
Sur Linux et macOS :
source venv/bin/activateSous Windows :
venv\Scripts\activateAprès l'activation, au début de la ligne du terminal apparaît (venv) — cela signifie que l'environnement est actif.
Pour quitter l'environnement virtuel, composez simplement :
deactivateInstallation des paquets
Maintenant que l'environnement est activé, vous pouvez installer les bibliothèques nécessaires :
pip install requests
pip install django==4.1Tous les paquets seront installés dans le dossier venv/lib, et non dans le système. Vous pouvez vérifier la liste des paquets installés avec la commande :
pip listFichier requirements.txt
Pour que d'autres développeurs (ou vous-même sur un autre ordinateur) puissent facilement recréer l'environnement, le fichier requirements.txt est utilisé. Il s'agit d'un fichier texte simple répertoriant toutes les dépendances du projet.
Vous pouvez le créer avec la commande :
pip freeze > requirements.txtLe contenu du fichier ressemblera à ceci :
requests==2.28.1
Django==4.1.0
certifi==2022.9.24Maintenant, n'importe qui peut installer tous les paquets nécessaires avec une seule commande :
pip install -r requirements.txt
Alternatives à venv
Bien que venv soit inclus dans la bibliothèque standard de Python, il existe d'autres outils pour travailler avec des environnements virtuels :
virtualenv — un outil plus ancien qui prend en charge des fonctionnalités supplémentaires et fonctionne plus rapidement sur certains systèmes.
pipenv — combine la gestion des dépendances et des environnements virtuels, utilise les fichiers Pipfile au lieu de requirements.txt.
poetry — gestionnaire de dépendances moderne avec des fonctionnalités avancées de gestion de projet et de publication de paquets.
conda — populaire en science des données, car il peut installer non seulement des paquets Python, mais aussi des bibliothèques système.
Pour les développeurs débutants, venv reste le choix optimal en raison de sa simplicité et de l'absence de nécessité d'installer quelque chose en plus.
Résolution des problèmes courants
L'environnement ne s'active pas sous Windows ? Vous devrez peut-être autoriser l'exécution de scripts. Exécutez PowerShell en tant qu'administrateur et exécutez :
Set-ExecutionPolicy RemoteSignedLa commande python ne fonctionne pas ? Sur certains systèmes, vous devez utiliser python3 au lieu de python.
Vous avez oublié si l'environnement est activé ? Vérifiez avec la commande which python (Linux/macOS) ou where python (Windows). Le chemin doit pointer vers le dossier de votre environnement virtuel.
Conclusion
Les environnements virtuels sont l'outil de base de tout développeur Python. Ils résolvent de nombreux problèmes et rendent le travail sur les projets plus pratique et prévisible. Prenez le temps de maîtriser cette technique et elle sera rentabilisée plusieurs fois dans vos futurs projets.
Vous souhaitez approfondir vos connaissances en Python ?
Nous vous invitons à Code — vous trouverez ici des cours structurés pour les développeurs de tous niveaux. Et nous avons aussi un super chaîne Telegram avec une communauté amicale où vous pouvez poser des questions, partager des expériences et obtenir le soutien de personnes partageant les mêmes idées !
