Cet article vous guidera à travers les premiers pas avec les environnements virtuels en Python, que vous utilisiez Windows ou Linux comme système d’exploitation.
Lorsque vous travaillez simultanément sur plusieurs projets dans votre environnement de développement local, vous vous heurtez fréquemment à des problèmes de dépendances. La mise en place d’environnements virtuels distincts pour chacun de vos projets s’avère une solution efficace pour une meilleure gestion des dépendances et des exigences spécifiques à chaque projet.
Afin de profiter pleinement des avantages offerts par les environnements virtuels en Python, apprenons ensemble comment les créer et les activer. 👩🏽💻
Définition des Environnements Virtuels
Les environnements virtuels se présentent comme des espaces isolés et autonomes, dédiés au code et aux dépendances d’un projet spécifique.
Mais, pourquoi devriez-vous adopter les environnements virtuels ?
En fait, ils vous offrent la possibilité d’installer et d’utiliser différentes versions des mêmes bibliothèques pour différents projets. Cette pratique permet d’éviter des conflits lorsque plusieurs projets utilisent des versions différentes d’une même dépendance. Explorons cela plus en détail.
Installation de Packages en Python
La bibliothèque standard Python inclut une multitude de modules utiles, tels que des outils pour les tests unitaires, l’interaction avec le système d’exploitation, la manipulation des dates et des heures, etc.
Cependant, lors du développement de projets Python, vous aurez souvent besoin d’installer des packages additionnels, conçus par la communauté Python. C’est particulièrement le cas pour des applications comme le web scraping, l’apprentissage automatique et les applications web.
Pour installer et gérer ces packages, vous pouvez utiliser des outils comme conda ou pip.
Chaque projet requiert un ensemble précis de packages à installer. Cependant, si vous installez tous les packages dans votre environnement de développement global, tous les projets partagent ces packages installés à l’échelle de votre système.
Pourquoi cela pose-t-il problème ?
Imaginez que votre environnement de développement contienne un grand nombre de packages, tandis que le projet sur lequel vous travaillez n’en requiert que quelques-uns. Lorsque les projets partagent une installation commune, il devient très complexe d’identifier quelles sont les dépendances nécessaires pour chaque projet.
Cette approche présente une autre limite. Prenons l’exemple d’un projet Django 2.2. Si vous décidez de travailler sur un nouveau projet qui utilise Django 4, l’installation de cette dernière version dans le même environnement global entraînera la suppression de la version précédente. Les nouvelles versions peuvent rendre certaines fonctionnalités obsolètes, ce qui pourrait perturber le fonctionnement de vos anciens projets Django.
En résumé, la gestion des dépendances devient ardue lorsque tous les packages sont installés dans un environnement unique, car chaque projet nécessite ses propres bibliothèques pour fonctionner correctement.
Fonctionnement des Environnements Virtuels
Nous avons vu les difficultés liées à l’installation de packages dans un environnement global. Il est donc essentiel de comprendre comment les environnements virtuels permettent de résoudre ce problème.
Lorsque vous créez et activez un environnement virtuel pour vos projets Python, vous pouvez installer uniquement les packages qui sont requis pour le projet en cours.
En reprenant notre exemple des projets Django, les environnements virtuels vous permettent d’exécuter à la fois des projets Django 2.2 et Django 4 sans conflit, car les installations de Django ne sont plus globales au système, mais confinées aux environnements virtuels de chaque projet.
En d’autres termes, les environnements virtuels sont des espaces isolés qui englobent à la fois le code et les dépendances d’un projet.
Avantages des Environnements Virtuels
Maintenant que vous avez une idée de la façon dont les environnements virtuels en Python fonctionnent, voici une liste de leurs avantages :
- Les environnements virtuels fournissent un environnement de développement isolé pour chaque projet, ce qui permet d’installer uniquement les packages nécessaires à ce dernier.
- Les environnements virtuels étant indépendants et isolés, chaque projet peut utiliser des versions différentes d’une même bibliothèque en fonction de ses besoins. Vous n’avez pas à vous soucier des autorisations système pour installer des bibliothèques et configurer l’environnement de développement.
- Une fois les packages installés dans un environnement virtuel, vous pouvez capturer les dépendances du projet dans un fichier
requirements.txt
. Cela permet aux autres développeurs de reproduire l’environnement et les dépendances du projet en utilisant une seule commande.
Vous avez maintenant une compréhension du fonctionnement des environnements virtuels et de leurs avantages. Explorons quelques outils populaires que vous pouvez utiliser pour créer et gérer des environnements virtuels en Python.
#1. Virtualenv
Virtualenv est l’un des outils les plus utilisés pour créer et gérer des environnements virtuels pour les projets Python. Une partie de ses fonctionnalités se retrouve dans le package venv
. Cependant, virtualenv est généralement plus rapide et plus extensible que venv
.
#2. Pipenv
Pipenv combine les fonctionnalités de création d’environnements virtuels de virtualenv avec la gestion de packages de pip. Il utilise des Pipfiles pour gérer les dépendances des projets à l’intérieur d’un environnement virtuel.
Vous pouvez tester pipenv directement depuis votre navigateur sur ce terrain de jeu Pipenv.
#3. Conda
Si vous utilisez la distribution Anaconda de Python pour le développement, vous pouvez utiliser conda pour la gestion des packages et la création d’environnements virtuels.
Pour en savoir plus, consultez ce guide complet sur la gestion des environnements avec conda.
#4. Poetry
Poetry est un outil de gestion de packages qui permet de gérer les dépendances de tous les projets Python. Pour commencer à utiliser Poetry, vous devez avoir Python 3.7 ou une version ultérieure installée.
#5. Venv
Comme mentionné précédemment, venv propose un sous-ensemble des fonctionnalités de virtualenv, mais a l’avantage d’être intégré à la bibliothèque standard Python depuis la version 3.3.
Il est disponible avec l’installation de Python et ne nécessite pas l’installation de packages supplémentaires. Nous l’utiliserons dans ce tutoriel pour créer et utiliser des environnements virtuels. ✅
Comment Créer un Environnement Virtuel Python sous Ubuntu
💬 Pour suivre ce tutoriel, vous devez avoir Python 3 installé localement. Assurez-vous d’utiliser Python 3.5 ou une version ultérieure.
Cette section explique les étapes nécessaires pour créer et activer des environnements virtuels sous Ubuntu Linux. Les mêmes étapes peuvent être appliquées aux autres distributions Linux.
Pour faciliter la gestion, créons un répertoire de projet et déplaçons-nous à l’intérieur; nous créerons venv
dans ce répertoire.
$ mkdir my_project $ cd my_project
La syntaxe générale pour créer un environnement virtuel pour votre projet Python est python3 -m venv <nom-ou-chemin-venv>
. En exécutant cette commande, un environnement virtuel nommé my_env
sera créé dans le répertoire de travail actuel :
$ python3 -m venv my_env
Comment Activer et Installer des Packages dans un Environnement Virtuel
Après la création de l’environnement virtuel, vous pouvez l’activer et y installer les packages requis. Pour activer l’environnement virtuel, exécutez la commande suivante :
$ source my_env/bin/activate
Une fois l’environnement virtuel activé, vous pouvez exécuter la commande pip list
pour obtenir la liste des packages installés :
$ pip list
Jusqu’à présent, aucun package n’a été installé. Vous devriez voir setuptools
et pip
, qui sont installés par défaut dans chaque environnement virtuel créé.
L’installation de pip dans l’environnement virtuel vous permet d’installer les packages nécessaires à un projet spécifique, ce qui permet d’avoir un environnement de développement indépendant pour chaque projet.
Maintenant que l’environnement virtuel est activé, vous pouvez y installer les packages spécifiques à votre projet en utilisant pip. Par exemple, installons le package requests
, l’un des packages Python les plus téléchargés, qui offre des fonctionnalités utiles pour effectuer des requêtes HTTP pour interagir avec les API web.
$ pip install requests
L’installation de la bibliothèque requests
entraîne l’installation de tous les packages dont elle dépend.
$ pip list
Vous pouvez utiliser la commande pip freeze
et rediriger la sortie vers un fichier requirements.txt
, comme suit :
$ pip freeze > requirements.txt
Si vous examinez le contenu du répertoire actuel du projet, vous verrez que le fichier requirements.txt
a été créé.
$ ls # my_env requirements.txt
Vous pouvez désactiver l’environnement virtuel une fois le travail sur le projet terminé en exécutant la commande suivante :
$ deactivate
Comment Créer un Environnement Virtuel Python sous Windows
En général, un environnement Linux est privilégié pour le développement. Si vous utilisez Windows, vous pouvez utiliser le sous-système Windows pour Linux (WSL) afin de configurer un environnement de terminal Ubuntu pour votre développement local.
Si vous utilisez Windows, vous pouvez utiliser Windows PowerShell ou l’invite de commandes pour créer des environnements virtuels à l’aide de la commande suivante :
> python -m venv <chemin-vers-venv>
Comment Activer un Environnement Virtuel
L’activation des environnements virtuels sous Windows varie selon que vous utilisez l’invite de commande ou Windows PowerShell.
Si vous utilisez l’invite de commande, exécutez la commande suivante pour activer l’environnement virtuel :
> <chemin-vers-venv>Scriptsactivate.bat
Si vous utilisez Windows PowerShell, l’exécution de cette commande activera l’environnement virtuel :
> <chemin-vers-venv>ScriptsActivate.ps1
Vous pouvez installer tous les packages nécessaires dans l’environnement virtuel.
Pour désactiver les environnements virtuels, vous pouvez utiliser la commande deactivate
, que vous utilisiez l’invite de commande ou Windows PowerShell.
Conclusion
Dans cet article, nous avons examiné les limites des installations à l’échelle du système et comment elles compliquent la gestion des dépendances entre les projets Python. Les environnements virtuels en Python permettent une meilleure gestion des dépendances tout en fournissant un environnement de développement isolé pour chaque projet.
Parmi les outils les plus utilisés pour créer et gérer des environnements virtuels en Python, nous avons appris à utiliser venv
, qui est intégré à la bibliothèque standard Python, pour créer et activer des environnements virtuels.
Dans un environnement virtuel dédié à un projet, des versions de bibliothèques spécifiques peuvent être installées. Ces dépendances peuvent ensuite être capturées dans un fichier requirements.txt
, permettant à d’autres développeurs de reproduire facilement l’environnement du projet.
Lorsque vous démarrerez votre prochain projet Python, n’oubliez pas d’utiliser les environnements virtuels pour une meilleure gestion des dépendances. Bon codage !🎉