Ne faites pas cette erreur lorsque vous démarrez votre projet Python
Sommaire
Principaux points à retenir
- Les environnements virtuels créent des espaces isolés pour les projets Python afin d'éviter les conflits de packages 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 basculer entre les environnements.
- Ils aident à maintenir votre environnement Python global propre en évitant la pollution par des packages inutiles qui peuvent ne pas être nécessaires pour chaque projet.
Vous démarrez un projet Python ? En tant que développeur, vous serez souvent amené à travailler sur plusieurs projets. Si c'est votre cas, les environnements virtuels sont faits pour vous. Ils vous aideront à surmonter les conflits de paquets et les dépendances lorsque vous travaillerez sur plusieurs projets Python.
Qu'est-ce qu'un environnement virtuel ?
Dans le contexte de la programmation Python, un environnement virtuel désigne 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 qu'une version entre en conflit avec l'autre. Ce processus est cohérent sur tous les systèmes d'exploitation tels que Windows, Linux et macOS.
Pour utiliser un environnement virtuel, vous devez d'abord le créer, l'activer, installer les packages nécessaires à votre projet à l'intérieur et, lorsque vous avez terminé de travailler sur le projet, désactiver enfin l'environnement. (Je couvrirai toutes les étapes dans un instant.)
Lorsque vous créez un environnement virtuel pour la première fois, un nouveau dossier est créé dans le répertoire de votre projet. L'environnement virtuel se trouve dans ce dossier. Une copie de l'interpréteur Python et certains fichiers essentiels sont placés dans ce dossier. Cette copie fait office d'installation Python principale pour votre projet. Il stocke également un dossier Scripts (Windows) ou bin (Linux), qui contient les scripts d'activation et de désactivation, afin que vous puissiez basculer entre vos versions Python globales et isolées.
Après avoir activé l'environnement, l'environnement de votre shell change, ce qui oblige la ligne de commande à utiliser l'interpréteur Python et les bibliothèques de l'environnement virtuel. En coulisses, la variable PATH de l'environnement est mise à jour. Le dossier « bin » (« Scripts » sous Windows) de l'environnement virtuel est ajouté au début du PATH, ce qui indique à votre terminal de le consulter en premier. De plus, votre invite change pour refléter la mise à jour.
Lors de l'installation d'un package Python dans un environnement virtuel, il est généralement installé dans le dossier « lib/pythonX.X/site-packages » (« Libsite-packages » sous Windows) au lieu du système Python global. Chaque environnement possède son propre répertoire « site-packages », où sont conservées toutes les bibliothèques et dépendances installées. Cela permet de garder chaque projet isolé et exempt de conflits avec d'autres projets ou 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 plus récent nécessite la version 4 de Django. À première vue, vous pouvez envisager d'installer les deux versions sur votre système.
Cependant, ce n'est pas possible et vous recevrez une erreur si vous essayez de le faire. Vous ne pouvez donc 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 celle 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. C'est donc 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 le désinstaller, installer l'autre version, passer à l'autre projet, et ainsi de suite. Ce n'est pas du tout pratique. Ce n'est qu'un petit exemple. Vous serez probablement confronté à des conflits de dépendances 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 requis, sans 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. J'ai ensuite installé avec succès deux versions distinctes de NumPy. Ici, le projet A utilise la version 2.1.1 tandis que le projet B utilise la version 2.0.0.
Un autre avantage de l'utilisation d'environnements virtuels est que vous souhaitez collaborer avec d'autres personnes 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 et dans lequel vous conservez tous les fichiers du projet et les packages associés. Pour la démonstration, je vais d'abord créer un répertoire pour configurer l'environnement.
mkdir programming
cd programming
Dans ce répertoire nouvellement créé, je vais créer un environnement virtuel.
Linux
Sur la plupart des distributions Linux, Python est généralement préinstallé. Sinon, vous pouvez installer Python sur Linux à l'aide de votre gestionnaire de paquets. Installez ensuite 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. Exécutez ensuite 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é.
Fenêtres
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 dans lequel 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 devez l'activer à l'aide du fichier d'activation contenu dans le dossier pour commencer à l'utiliser. Si vous réussissez à activer 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 celui utilisé pour l'environnement virtuel.
Maintenant que vous avez activé l'environnement virtuel, vous pouvez installer des packages Python à l'intérieur, comme ceci :
python -m pip install package_name
Une fois que vous avez installé certains packages, vous pouvez vérifier leurs versions avec cette commande :
pip list
Si vous souhaitez sortir de l’environnement virtuel, exécutez :
deactivate
Le nom de l’environnement entre parenthèses doit disparaître de l’invite de ligne de commande.
Fenêtres
Pour activer l’environnement sous Windows, exécutez :
myenvScriptsactivate
.myenvScriptsActivate.ps1
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 souhaitez sortir de l’environnement virtuel, exécutez :
deactivate
Lorsque vous désactivez l'environnement virtuel, vous revenez à votre configuration Python globale.
Finis les problèmes liés aux packages Python
Avec un environnement virtuel défini, 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. N'hésitez pas à les explorer. Si vous débutez avec Python, commencez par les bases et créez votre premier projet.