Dans cet article, vous apprendrez comment démarrer avec des environnements virtuels en Python, dans les systèmes d'exploitation Windows et Linux.
Lorsque vous commencez à travailler sur plusieurs projets dans votre environnement de développement local, vous rencontrez souvent des problèmes de dépendances. La création d'environnements virtuels pour chacun de vos projets peut vous aider à mieux gérer les dépendances et les exigences des projets.
Pour tirer parti des avantages des environnements virtuels en Python, apprenons à créer et à activer des environnements virtuels. 👩🏽💻
Qu'est-ce qu'un environnement virtuel ?
Environnements virtuels sont des environnements isolés et indépendants qui contiennent le code et les dépendances d'un projet.
Mais pourquoi utiliser des environnements virtuels ?
Les environnements virtuels vous permettent d'installer et d'utiliser différentes versions des mêmes bibliothèques pour divers projets. L'utilisation d'environnements virtuels permet également de s'assurer qu'il n'y a pas de rupture lorsque deux ou plusieurs projets utilisent des versions différentes. Voyons cela plus en détail.
Installation de paquets en Python
La bibliothèque standard de Python est livrée avec plusieurs modules utiles pour les tests unitaires, l'interaction avec le système d'exploitation, le traitement des dates et des heures, etc.
Cependant, lorsqu'il s'agit de travailler sur Projets PythonVous aurez souvent besoin d'installer d'autres paquets - développés par la communauté Python. C'est particulièrement vrai pour les applications telles que le web scraping pour la collecte de données, l'apprentissage automatique et les applications web.
Pour installer et gérer ces paquets, vous pouvez utiliser conda ou pip.
Chaque projet nécessite un ensemble spécifique de paquets que vous devez installer. Cependant, lorsque vous installez tous les paquets dans votre environnement de développement sur votre machine locale, tous les projets partagent les paquets installés globalement.

Pourquoi cela pose-t-il un problème ?
Il se peut que vous ayez N paquets dans votre environnement de développement. Cependant, le projet sur lequel vous travaillez actuellement peut ne nécessiter que 3 d'entre eux. Lorsque tous vos projets partagent des installations communes, il est très difficile d'identifier lequel des projets a besoin de quel paquet installé - les dépendances associées à chaque projet.
Il y a une autre limitation à cette approche. Supposons que vous ayez un projet Django 2.2 dans votre bibliothèque de projets. Vous décidez de commencer à travailler sur un projet qui utilise Django 4. Vous installez donc la version la plus récente de Django dans le même environnement de développement.
Qu'advient-il de l'installation existante ?
Elle est supprimée et remplacée par la version de Django que vous avez installée. Avec les nouvelles versions stables, certaines fonctionnalités peuvent être obsolètes. Il est possible que vos anciens projets Django ne fonctionnent pas comme prévu.

Pour résumer notre discussion jusqu'à présent : la gestion des dépendances devient difficile lorsque les paquets sont tous installés dans un environnement commun parce que les projets ont besoin de leur propre ensemble d'outils de gestion des dépendances. bibliothèques à courir.
Fonctionnement des environnements virtuels
Jusqu'à présent, nous avons vu les défis associés à l'installation de paquets dans un environnement de développement global (installations à l'échelle du système). Cela nous incite à comprendre comment les environnements virtuels répondent à cette limitation.
Lorsque vous créez et activez un environnement virtuel pour vos projets Python, vous pouvez installer seulement les paquets qui sont requis pour le projet en cours.

Si l'on reprend l'exemple des projets Django, avec les environnements virtuels, il est possible d'exécuter à la fois des projets Django 2.2 et Django 4, sans aucun conflit. En effet, les installations de Django ne sont plus des installations à l'échelle du système, mais sont confinées aux environnements virtuels des projets respectifs.
En substance : les environnements virtuels sont isolée qui contiennent à la fois le code et les dépendances d'un projet.
Avantages des environnements virtuels

Maintenant que vous avez appris comment fonctionnent les environnements virtuels en Python, énumérons les avantages de leur utilisation :
- Les environnements virtuels offrent une environnement de développement isolé pour des projets individuels, ce qui nous permet de n'installer que les paquets nécessaires pour le projet en question.
- Les environnements virtuels des projets étant à la fois indépendants et isolés, différents projets peuvent utiliser différents des versions de l même en fonction des besoins. Avec les environnements virtuels, vous n'avez pas à vous soucier des autorisations du système pour installer les bibliothèques et mettre en place l'environnement de développement.
- Une fois les paquets installés dans un environnement virtuel, vous pouvez capturer les dépendances du projet dans un fichier requirements.txt. Cela permet à d'autres développeurs de reproduire le développement et l'environnement du projet et d'installer les paquets requis à l'aide d'une seule commande.
Outils de création d'environnements virtuels

Jusqu'à présent, vous avez appris comment fonctionnent les environnements virtuels et quels sont les avantages de leur utilisation. Nous allons maintenant explorer 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. Un sous-ensemble des fonctionnalités de virtualenv
est disponible dans le venv paquet. Cependant, le virtualenv
est plus rapide et plus extensible que le paquetage venv
.
#2. Pipenv
Avec pipnevvous disposez à la fois de la fonctionnalité d'environnement virtuel de virtualenv
et les capacités de gestion des paquets de pip
. Il utilise les pipfiles pour gérer les dépendances d'un projet dans un environnement virtuel en utilisant .
Vous pouvez essayer pipenv
directement depuis le navigateur sur ce Terrain de jeu Pipenv.
#3. Conda
Si vous utilisez le Distribution Anaconda de Python pour le développement, vous pouvez utiliser conda pour la gestion des paquets et la création d'environnements virtuels.
Pour en savoir plus, consultez ce guide complet sur les gérer les environnements avec conda.
#4. Poésie
Poésie est un outil de gestion de paquets qui vous permet de gérer les dépendances dans tous les projets Python. Pour commencer à utiliser Poetry, vous devez avoir installé Python 3.7 ou une version ultérieure.
#5. Venv
Comme indiqué, venv offre un sous-ensemble des fonctionnalités de virtualenv mais il présente l'avantage d'être intégré dans la bibliothèque standard de Python, à partir de Python 3.3.
Il est facilement disponible avec l'installation de Python et ne nécessite pas l'installation de paquets externes. Nous l'utiliserons dans ce tutoriel pour créer et travailler avec des environnements virtuels. ✅
Comment créer un environnement virtuel Python dans Ubuntu
💬 Pour suivre la suite de ce tutoriel, vous devez disposer d'une installation locale de Python 3. Assurez-vous que vous utilisez Python 3.5 ou une version ultérieure.
Cette section décrit les étapes de création et d'activation des environnements virtuels dans une machine Ubuntu Linux. Les mêmes étapes peuvent être utilisées sur d'autres machines Distros Linux également.
Pour faciliter la gestion, créons un répertoire de projet et cd
Nous allons créer 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 la suivante python3 -m venv <venv-name-or-path>
. En exécutant cette commande, un environnement virtuel appelé my_env
sera créé dans le répertoire de travail actuel :
$ python3 -m venv my_env
Comment activer et installer des paquets dans un environnement virtuel ?
Après avoir créé l'environnement virtuel, vous pouvez l'activer et y installer les paquets nécessaires. Pour activer l'environnement virtuel, vous pouvez exécuter la commande suivante :
$ source my_env/bin/activate
Une fois que vous avez activé un environnement virtuel, vous pouvez exécuter la commande pip list
pour obtenir la liste des paquets installés :
$ pip list

Jusqu'à présent, nous n'avons installé aucun paquet, vous devriez donc pouvoir voir setuptools
et pip
-installé par défaut dans chacun des environnements virtuels créés.
L'installation de pip
dans l'environnement virtuel vous permet d'installer les paquets nécessaires au projet spécifique ; c'est pourquoi vous disposez d'un environnement de développement indépendant pour chaque projet.
Maintenant que vous avez activé l'environnement virtuel, vous pouvez y installer des paquets spécifiques au projet à l'aide de pip. Par exemple, installons Demandes Pythonl'un des paquets Python les plus téléchargés, qui fournit plusieurs fonctionnalités utiles pour envoyer des requêtes HTTP afin de travailler avec des API web.
$ pip install requests
Lorsque vous installez la bibliothèque de requêtes, vous verrez que la bibliothèque de requêtes est installée avec tous les paquets qui lui sont nécessaires.

$ pip list

Vous pouvez utiliser le pip freeze
et rediriger la sortie vers un fichier requirements.txt, comme indiqué :
$ pip freeze > requirements.txt
Si vous examinez le contenu du répertoire du projet en cours, vous verrez que le fichier requirements.txt a été créé.
$ ls
# my_env requirements.txt
Vous pouvez désactiver l'environnement virtuel après avoir travaillé sur le projet en exécutant la commande suivante :
$ deactivate
Comment créer un environnement virtuel Python sous Windows
En général, un environnement Linux est préférable pour le développement. Si vous êtes sur une machine Windows, vous pouvez envisager d'utiliser le programme Sous-système Windows pour Linux (WSL) pour mettre en place un environnement terminal Ubuntu pour le développement local.
Si vous êtes sur une machine Windows, vous pouvez utiliser Windows PowerShell ou l'Invite de commande et créer des environnements virtuels à l'aide de la commande suivante :
> python -m venv <path-to-venv>
Comment activer un environnement virtuel
L'activation des environnements virtuels sur une machine Windows est différente selon que vous travaillez à partir de l'invite de commande ou de l'interface Windows PowerShell.
Si vous êtes à l'invite de commande, exécutez la commande suivante pour activer l'environnement virtuel :
> <path-to-venv>\Scripts\activate.bat
Si vous utilisez Windows PowerShell, l'exécution de cette commande activera l'environnement virtuel :
> <path-to-venv>\Scripts\Activate.ps1
Vous pouvez installer tous les paquets nécessaires dans l'environnement virtuel.
Pour désactiver les environnements virtuels, vous pouvez exécuter la commande deactivate
à la fois dans l'invite de commande et dans Windows PowerShell.
Conclusion
Dans cet article, nous avons discuté des limites des installations à l'échelle du système et de la façon dont elles rendent difficile la gestion des dépendances entre les projets Python. Environnements virtuels en Python permettent de mieux gérer les dépendances tout en fournissant un environnement de développement isolé pour les projets individuels.
Parmi les outils largement utilisés pour créer et gérer des environnements virtuels en Python, vous avez appris à utiliser les outils suivants venv - qui est intégré à la bibliothèque standard Python pour créer et activer des environnements virtuels.
Dans l'environnement virtuel dédié à un projet, des versions de bibliothèques spécifiques à un projet peuvent être installées. Ces exigences peuvent ensuite être saisies dans un fichier requirements.txt, ce qui permet à d'autres développeurs de reproduire facilement l'environnement du projet.
Lorsque vous commencez votre prochain Projet PythonPour ce faire, assurez-vous d'utiliser des environnements virtuels pour une meilleure gestion des dépendances. Bon codage!🎉