Premiers pas avec les environnements virtuels en Python



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 !🎉