Recherche de site Web

Ne faites pas cette erreur lorsque vous démarrez votre projet Python


Principaux enseignements

  • Les environnements virtuels créent des espaces isolés pour les projets Python afin de prévenir les conflits de paquets et les erreurs.
  • Ils créent un dossier séparé avec leur propre copie de Python et gèrent le PATH de votre système pour passer d'un environnement à l'autre.
  • Ils aident à garder votre environnement Python global propre en évitant la pollution par des paquets inutiles qui peuvent ne pas être nécessaires pour chaque projet.

Vous commencez un projet Python ? En tant que développeur, vous vous retrouverez souvent à travailler sur plusieurs projets. Si c'est votre cas, alors les environnements virtuels sont vos amis. Ils vous aideront à surmonter les conflits de paquets et l'enfer des dépendances lorsque vous travaillez sur plusieurs projets Python.

Qu'est-ce qu'un environnement virtuel ?

Un environnement virtuel dans le cadre de la programmation Python signifie un emplacement autonome qui vous permet de maintenir des environnements séparés et isolés pour vos projets Python. Lorsqu'il est activé, il ajuste l'environnement de votre terminal pour utiliser cette configuration Python isolée. Les environnements virtuels vous permettent d'utiliser plusieurs versions de Python et d'autres packages sans que les uns ne soient en conflit avec les autres. Ce processus est cohérent sur les systèmes d'exploitation tels que Windows, Linux et macOS.

Pour utiliser un environnement virtuel, vous allez d'abord le créer, l'activer, installer les paquets nécessaires pour votre projet à l'intérieur, et lorsque vous avez fini de travailler sur le projet, enfin désactiver l'environnement. (Je vais couvrir toutes les étapes dans un instant.)

Lorsque vous créez un environnement virtuel pour la première fois, un nouveau dossier est créé dans votre répertoire de projet. L'environnement virtuel se trouve à l'intérieur de ce dossier. Une copie de l'interpréteur Python et quelques fichiers essentiels sont placés à l'intérieur de ce dossier. Cette copie agit comme l'installation principale de Python pour votre projet. Elle contient également un dossier Scripts (Windows) ou bin (Linux), qui contient les scripts d'activation et de désactivation, afin que vous puissiez passer entre votre version globale de Python et vos versions isolées.

Après avoir activé l'environnement, l'environnement de votre terminal change, ce qui fait que la ligne de commande utilise l'interpréteur Python et les bibliothèques à l'intérieur de l'environnement virtuel. En arrière-plan, la variable PATH de l'environnement est mise à jour. Le dossier "bin" ("Scripts" sur Windows) de l'environnement virtuel est ajouté au début de la PATH, ce qui indique à votre terminal de regarder là en premier. De plus, votre invite change pour refléter la mise à jour.

Lors de l'installation d'un package Python à l'intérieur d'un environnement virtuel, il est généralement installé dans le dossier "lib/pythonX.X/site-packages" ("Lib\site-packages" sous Windows) au lieu du système Python global. Chaque environnement a son propre répertoire "site-packages" où toutes les bibliothèques et dépendances installées sont conservées. Cela permet de garder chaque projet isolé et sans conflits avec d'autres projets ou des packages globaux.

Pourquoi utiliser un environnement virtuel pour le développement Python ?

Supposons que vous travaillez sur plusieurs projets Python en même temps. L'un des projets est un peu ancien. Les deux projets nécessitent le module Django. Cependant, l'ancien projet nécessite la version 3 de Django tandis que le nouveau nécessite la version 4. À première vue, vous pourriez envisager d'installer les deux versions sur votre système.

Cependant, cela n'est pas possible, et vous recevrez une erreur si vous essayez de le faire. Donc, vous ne pouvez pas installer deux versions différentes du même package en même temps. Même si vous parvenez à l'installer, la dernière version installée remplacera la version précédemment installée. De plus, lorsque vous importez un package dans votre code Python, vous ne pouvez pas définir quelle version utiliser. Donc, c'est une autre raison pour laquelle vous ne pouvez avoir qu'une seule version d'un package à la fois.

Maintenant, si vous voulez travailler sur les deux projets, vous devrez d'abord installer une version de Django, travailler sur ce projet, puis la désinstaller, installer l'autre version, passer à l'autre projet, et ainsi de suite. Ce n'est pas du tout pratique. C'est juste un petit exemple. Vous serez probablement confronté à des conflits de dépendance beaucoup plus complexes comme celui-ci.

Les environnements virtuels résolvent ce problème. Vous pouvez créer un nouvel environnement pour chacun de vos projets, installer les packages et dépendances nécessaires, et ne pas vous soucier des conflits et des erreurs. Voici un exemple rapide où j'ai installé deux versions différentes de NumPy pour deux projets différents.

Pour cet exemple, j'ai configuré deux environnements virtuels pour deux projets distincts. Ensuite, j'ai réussi à installer deux versions distinctes de NumPy. Ici, le projetA utilise la version 2.1.1 tandis que le projetB utilise la version 2.0.0.

Un autre avantage d'utiliser des environnements virtuels est lorsque vous souhaitez collaborer avec d'autres ou partager vos projets. En utilisant un fichier 'requirements.txt', vous pouvez définir toutes les dépendances, qui peuvent ensuite être recréées dans un nouvel environnement sur une autre machine.

Comment créer un environnement virtuel

L'environnement virtuel est un répertoire que vous créez où vous conservez tous les fichiers du projet et les paquets connexes. Pour la démonstration, je vais d'abord créer un répertoire pour configurer l'environnement.

mkdir programming
cd programming

Dans ce nouveau répertoire créé, je vais créer un environnement virtuel.

Linux

Sur la plupart des distributions Linux, Python est généralement préinstallé. Si ce n'est pas le cas, vous pouvez installer Python sur Linux en utilisant votre gestionnaire de paquets. Ensuite, installez l'environnement virtuel avec cette commande :

sudo apt install python3-venv

Après cela, vous pouvez créer des environnements virtuels. Vous devez nommer l'environnement. Ensuite, exécutez la commande ci-dessous :

python3 -m venv my_virt_env

Dans mon cas, je l'ai nommé 'my_virt_env.' Vous pouvez choisir n'importe quel nom approprié.

Windows

La première chose à faire est d'installer Python sur Windows. Lors de l'installation, assurez-vous d'ajouter Python.exe à votre PATH système. Accédez au dossier où vous souhaitez créer l'environnement virtuel. Ouvrez votre outil de ligne de commande préféré, puis exécutez:

python -m venv myenv

Activation de l'environnement virtuel

Créer un environnement virtuel ne suffit pas. Vous devrez l'activer en utilisant le fichier d'activation à l'intérieur du dossier pour commencer à l'utiliser. Si vous activez avec succès l'environnement virtuel, vous remarquerez le nom du dossier entre parenthèses dans votre ligne de commande au début de l'invite.

Linux

Pour activer l'environnement virtuel sur Linux, exécutez :

source my_virt_env/bin/activate

N'oubliez pas d'utiliser le même nom de répertoire que vous avez utilisé pour l'environnement virtuel.

Maintenant que vous avez activé l'environnement virtuel, vous pouvez y installer des paquets Python, comme ceci :

python -m pip install package_name

Une fois que vous avez installé des packages, vous pouvez vérifier leurs versions avec cette commande :

pip list

Si vous voulez sortir de l'environnement virtuel, alors exécutez :

deactivate

Le nom de l'environnement à l'intérieur des parenthèses doit disparaître de l'invite de commande.

Windows

Pour activer l'environnement sur Windows, exécutez :

myenv\Scripts\activate CMD
.\myenv\Scripts\Activate.ps1 PowerShell



Pour installer un package dans cet environnement, utilisez cette commande :

python -m pip install package_name

Vous pouvez lister les packages installés en exécutant :

pip list

Si vous voulez sortir de l'environnement virtuel, exécutez :

deactivate

Lorsque vous désactivez l'environnement virtuel, vous revenez à votre configuration Python globale.

Les maux de tête des packages Python disparus

Avec un environnement virtuel configuré, vous êtes prêt à commencer à coder en Python sans vous soucier des différentes versions de paquets, des conflits et des erreurs. Pour ce guide, j'ai utilisé l'outil venv. Il existe d'autres outils tels que Virtualenv et Conda. Vous pouvez vous sentir libre de les explorer. Si vous êtes nouveau en Python, commencez par les bases et construisez votre premier projet.