Premiers pas avec les environnements virtuels en Python
Publié: 2022-11-07Dans cet article, vous apprendrez à démarrer avec les 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épendance. La création d'environnements virtuels pour chacun de vos projets peut vous aider à mieux gérer les dépendances et les exigences du projet.
Pour tirer parti des avantages des environnements virtuels en Python, apprenons à créer et à activer des environnements virtuels.
Que sont les environnements virtuels ?
Les environnements virtuels sont des environnements isolés et indépendants qui contiennent le code et les dépendances d'un projet.
Mais pourquoi devriez-vous utiliser des environnements virtuels ?
Eh bien, les environnements virtuels vous permettent d'installer et d'utiliser différentes versions des mêmes bibliothèques pour différents projets. L'utilisation d'environnements virtuels garantit également qu'il n'y a pas de modifications importantes lorsque deux projets ou plus utilisent des versions différentes. Comprenons cela plus en détail.
Installation de packages en Python
La bibliothèque standard Python est livrée avec plusieurs modules utiles pour les tests unitaires, l'interaction avec le système d'exploitation, le travail avec les dates et les heures, etc.
Cependant, lorsque vous travaillez sur des projets Python, vous devrez souvent installer d'autres packages, développés par la communauté Python. Cela est particulièrement vrai pour les applications telles que le grattage Web pour la collecte de données, l'apprentissage automatique et les applications Web.
Pour installer et gérer ces packages, vous pouvez utiliser conda ou pip.
Chaque projet nécessite un ensemble spécifique de packages que vous devez installer. Cependant, lorsque vous installez tous les packages de votre environnement de développement sur votre ordinateur local, tous les projets partagent les packages installés globalement.

Alors pourquoi est-ce un problème ?
Eh bien, vous pouvez avoir N packages dans votre environnement de développement. Cependant, le projet sur lequel vous travaillez actuellement peut n'en nécessiter que 3. Lorsque tous vos projets partagent des installations communes, il est très difficile d'identifier lequel des projets a requis lequel des packages installés - les dépendances associées à chaque projet.
Il y a une autre limite à 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.
Que devient l'installation existante ?
Il est supprimé et remplacé par la version de Django que vous avez installée. Avec les nouvelles versions stables, certaines fonctionnalités peuvent être obsolètes. Et vos projets Django précédents peuvent ne pas fonctionner comme prévu.

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

En revenant à l'exemple des projets Django, avec des environnements virtuels, vous pouvez 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.
Essentiellement : les environnements virtuels sont des environnements isolés qui contiennent à la fois le code et les dépendances d'un projet.
Avantages des environnements virtuels

Maintenant que vous savez comment fonctionnent les environnements virtuels en Python, énumérons les avantages de leur utilisation :
- Les environnements virtuels fournissent un environnement de développement isolé pour des projets individuels nous permettant d'installer uniquement les packages nécessaires pour le projet spécifique.
- Comme les environnements virtuels des projets sont à la fois indépendants et isolés, différents projets peuvent utiliser différentes versions de la même bibliothèque, selon les besoins. Avec les environnements virtuels, vous n'avez pas à vous soucier des autorisations système pour installer des bibliothèques et configurer l'environnement de développement.
- Une fois que vous avez installé les packages dans un environnement virtuel, vous pouvez capturer les dépendances du projet dans un fichier requirements.txt. Cela permet à d'autres développeurs de répliquer le développement et l'environnement du projet et d'installer les packages requis à l'aide d'une seule commande.
Outils pour créer des environnements virtuels

Jusqu'à présent, vous avez appris le fonctionnement des environnements virtuels et les avantages de leur utilisation. Explorons quelques outils populaires que vous pouvez utiliser pour créer et gérer des environnements virtuels en Python.
#1. Environnement virtuel
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 package venv . Cependant, le package virtualenv
est plus rapide et extensible que venv
.
#2. Pipenv
Avec pipnev, vous disposez à la fois de la fonctionnalité d'environnement virtuel de virtualenv
et des capacités de gestion de packages de pip
. Il utilise manages pipfiles pour gérer les dépendances du projet à l'intérieur d'un environnement virtuel à l'aide.
Vous pouvez essayer pipenv
directement depuis le navigateur sur ce terrain de jeu Pipenv.
#3. Conde
Si vous utilisez la distribution Anaconda de Python pour le développement, vous pouvez utiliser conda pour la gestion des packages et pour créer des environnements virtuels.

Pour en savoir plus, consultez ce guide complet sur la gestion des environnements avec conda.
#4. Poésie
Poetry est un outil de gestion de packages qui vous permet de gérer les dépendances entre tous les projets Python. Pour commencer à utiliser Poetry, vous devez avoir installé Python 3.7 ou une version ultérieure.
#5. Venv
Comme mentionné, venv offre un sous-ensemble des fonctionnalités de virtualenv , mais il présente l'avantage d'être intégré à la bibliothèque standard Python, à partir de Python 3.3.
Il est facilement disponible avec l'installation de Python et ne nécessite pas l'installation de packages externes. Nous l'utiliserons dans ce didacticiel pour créer et travailler avec des environnements virtuels.
Comment créer un environnement virtuel Python dans Ubuntu
Pour suivre le reste de ce didacticiel, vous devez disposer d'une installation locale de Python 3. Assurez-vous que vous exécutez Python 3.5 ou une version ultérieure.
Cette section décrit les étapes pour créer et activer des environnements virtuels dans une machine Ubuntu Linux. Les mêmes étapes peuvent également être utilisées sur d'autres distributions Linux.
Pour une gestion plus facile, créons un répertoire de projet et cd
dedans ; 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 python3 -m venv <venv-name-or-path>
. Lors de l'exécution de 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 packages dans un environnement virtuel
Après avoir créé l'environnement virtuel, vous pouvez l'activer et y installer les packages requis. 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 packages installés :
$ pip list

Jusqu'à présent, nous n'avons installé aucun package, vous devriez donc pouvoir voir setuptools
et pip
- installés par défaut - dans chacun des environnements virtuels créés.
L'installation de pip
dans l'environnement virtuel vous permet d'installer les packages 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 packages spécifiques au projet à l'aide de pip. À titre d'exemple, installons les requêtes Python, l'un des packages Python les plus téléchargés, qui fournit plusieurs fonctionnalités utiles pour envoyer des requêtes HTTP pour 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 packages requis par celle-ci.

$ pip list

Vous pouvez utiliser la commande 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 dans Windows
En général, un environnement Linux est préféré pour le développement. Si vous utilisez une machine Windows, vous pouvez envisager d'utiliser le sous-système Windows pour Linux (WSL) pour configurer un environnement de 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 d'environnements virtuels sur une machine Windows est différente selon que vous travaillez sur l'invite de commande ou sur Windows PowerShell.
Si vous êtes sur l'invite de commande, exécutez la commande suivante pour activer l'environnement virtuel :
> <path-to-venv>\Scripts\activate.bat
Sinon, 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 packages requis dans l'environnement virtuel.
Pour désactiver les environnements virtuels, vous pouvez exécuter la commande de deactivate
, à la fois sur l'invite de commande et sur Windows PowerShell.
Conclusion
Dans cet article, nous avons discuté des limites des installations à l'échelle du système et de la manière dont elles compliquent la gestion des dépendances entre les projets Python. Les environnements virtuels en Python permettent de mieux gérer les dépendances tout en fournissant un environnement de développement isolé pour des projets individuels.
Parmi les outils largement utilisés pour créer et gérer des environnements virtuels en Python, vous avez appris à utiliser venv , qui est intégré à la bibliothèque standard Python pour créer et activer des environnements virtuels.
Dans l'environnement virtuel dédié d'un projet, des versions de bibliothèques spécifiques à un projet peuvent être installées. Ces exigences peuvent ensuite être capturées dans un fichier requirements.txt, ce qui permet à d'autres développeurs de répliquer facilement l'environnement du projet.
Lorsque vous démarrez votre prochain projet Python, assurez-vous d'utiliser des environnements virtuels pour une meilleure gestion des dépendances. Bon codage !