Daniel vous a manqué ? Ça tombe bien, à nous aussi ! Aujourd’hui, notre expert en data science qui accompagne les apprenants tout au long de leur formation répond à ces questions : À quoi sert un environnement virtuel et comment en créer un sur Python ?
Qu’est-ce qu’un environnement virtuel ?
Toutes les extensions Python que vous installez localement sont stockées dans un même emplacement sur votre espace disque. Ainsi, toutes les applications que vous développez sur Python iront chercher les extensions nécessaires dans les mêmes dossiers. Si cela ne semble pas problématique aux premiers abords, il faut savoir que Python ne sait pas différencier deux versions différentes d’une même bibliothèque, et qu’il est donc impossible de stocker ces deux versions dans le même emplacement.
Conséquence ? Deux applications qui utilisent deux versions différentes d’un même module ne peuvent pas fonctionner simultanément avec une seule installation locale de Python.
Pour remédier à ce problème, Python propose des modules qui permettent de créer des environnements virtuels.
Grâce à eux, on peut attribuer à chaque projet créé un environnement dans lequel on stocke les versions adaptées des modules, ce qui assure le bon fonctionnement de l’application que vous développez, sans impacter les autres.
Vous pouvez installer un nombre illimité d’environnements virtuels, tant que vous avez suffisamment d’espace disque pour le faire.
Comment créer et utiliser un environnement virtuel ?
Pour des versions antérieures à Python3, vous pouvez utiliser la bibliothèque virtualenv, que vous pouvez installer en saisissant la commande suivante :
Si vous utilisez Python 3, la bibliothèque venv dans la librairie standard de Python vous permet de créer des environnements virtuels.
Avant de commencer, créez un emplacement dans votre disque dur où vous voulez déposer vos environnements virtuels. Sur Terminal (MacOS) ou sur Cmd (Windows) :
A l’intérieur de ce dossier, créez un environnement virtuel en saisissant la commande :
Le dossier créé contient une copie de l’interpréteur Python et de sa libraire de base, ainsi que d’autres fichiers utiles pour le bon fonctionnement de l’environnement (bin, header et lib). Vous pouvez désormais l’activer :
Avec le module venv, vous pouvez choisir la version 3.x de Python que vous voulez utiliser pour vos projets, la version par défaut étant la 3.5.
Une fois activé, le nom de votre environnement virtuel s’affiche au début de votre ligne de commande. La commande python permet d’exécuter la version de Python que vous avez installée dans votre environnement.
Installer des modules dans votre environnement virtuel
La commande pipvous permet d’installer des libraires, de les mettre à jour ou de les désinstaller. Ce programme tire les packages du site Python Package Index, site que vous pouvez parcourir avec la fonction search de pip :
La bibliothèque pip contient également les fonctions install, uninstall et freeze, pour respectivement installer un package, en désinstaller ou afficher une liste des paquets installés (avec leur version) dans un fichier txt.
Pour installer la version la plus à jour d’une librairie, il suffit juste d’indiquer son nom :
Vous pouvez également installer une version spécifique d’une librairie (ce qui représente tout l’intérêt des environnements virtuels) en la précisant dans la console avec la commande « == » :
Pour mettre à jour un paquet, lancez la commande : pip install –upgrade, ou pip uninstall pour en désinstaller un. Pour plus d’informations sur le package pip, vous pouvez consulter la documentation de cette librairie.
Enfin, pour quitter l’environnement virtuel et revenir sur le système local de Python, on utilise la commande deactivate
Conclusion :
Nous avons vu dans cet article deux exemples de paquets permettant d’installer et de gérer des environnements virtuels sur Python. Ces paquets vous permettent de développer des applications qui utilisent différentes versions de mêmes modules, ou de Python, sans conflit d’usage entre chaque projet.
Il en existe d’autres, tels que pyenv, qui est plus adapté pour installer différentes versions de python dans des environnements virtuels, et ainsi de facilement passer d’une version à l’autre de Python.
Vous débutez sur Python ? Découvrez notre suite d’épisodes pour faire vos premiers pas sur le logiciel. Ou alors démarrez prochainement une formation chez DataScientest et retrouvez-moi sur Slack 🙂