Python Virtualenv : tout savoir sur les environnements virtuels

-
6
 m de lecture
-

Découvrez tout ce que vous devez savoir sur les environnements virtuels de Python et la bibliothèque virtualenv : définition, cas d’usage, fonctionnement, tutoriel, formation…

L’un des principaux avantages du langage Python est sa large sélection de bibliothèques et packages tiers. Ces outils sont très utiles pour l’ingestion ou la transformation de données, ou encore pour les mathématiques à haute vitesse ou le Machine Learning.

Toutefois, il arrive que plusieurs packages ne soient pas compatibles entre eux. C’est également le cas entre plusieurs versions d’une même extension. Pour remédier à ce problème, on utilise les environnements virtuels.

Qu'est-ce qu'un Python virtualenv ?

Un environnement virtuel ou virtualenv permet de lancer de multiples instances parallèles de l’interpréteur Python. Chacune de ces instances à son propre ensemble de packages et ses configurations. Chaque environnement virtuel contient aussi une copie de l’interpréteur Python.

Les packages installés dans chaque environnement ne sont vus que dans cet environnement virtuel et nulle part ailleurs. Même les packages les plus larges et complexes peuvent être dissociés au sein d’environnements virtuels.

À quoi sert un Python virtualenv ?

Un environnement virtuel Python peut être utile dans plusieurs situations. Le cas d’usage le plus courant est le développement de multiples projets nécessitant différentes versions des mêmes packages, ou d’un projet nécessitant d’être isolé de certains packages à cause d’une collision de namespace.

Un autre cas d’usage répandu est le travail sur un environnement Python au sein duquel il est impossible de modifier le répertoire site-packages. Il peut s’agit d’un environnement hautement contrôlé, comme un hébergement géré, ou d’un serveur où le choix de l’interpréteur et des packages ne peut être modifié à cause des contraintes de production.

En outre, un virtualenv se révèle utile pour expérimenter une combinaison spécifique de packages dans des circonstances hautement contrôlées. Le but peut être de tester la compatibilité entre ces packages.

Enfin, un environnement virtuel permet d’exécuter une version de base de l’interpréteur Python sans package tiers sur un système et de n’installer les packages que pour répondre aux besoins individuels de chaque projet.

En guise d’alternative, il est aussi possible de déballer une bibliothèque Python dans le sous-dossier d’un projet, ou de télécharger une copie séparée de l’interpréteur Python et de le déballer dans un dossier pour exécuter les scripts et packages requis.

Toutefois, la gestion de tels projets avec des packages à composants binaires et dépendances tierces peut rapidement s’avérer difficile. Il est également compliqué de reproduire une telle configuration sur une autre machine. Ainsi, la meilleure solution à long terme est d’utiliser les environnements virtuels de Python.

Comment créer un environnement virtuel ?

Pour créer un environnement virtuel Python dans un dossier, il suffit de taper « python -m venv /path/to/directory » en spécifiant le nom du dossier au lieu de « directory ».

Si votre système reconnaît une version de Python 2 comme l’interpréteur Python par défaut, vous devez taper « python3 » au lieu de « python ». Sur Windows, il est possible d’utiliser « py » au lieu de « python » pour accéder à une version de Python installée.

Le processus de création d’un environnement virtuel ne prend qu’entre une et deux minutes. Lorsqu’il se termine, vous obtenez un dossier contenant plusieurs sous-dossiers.

Le sous-dossier le plus important est « bin » sur Unix ou « Scripts » sur Windows. C’est à cet emplacement que vous trouverez une copie de l’interpréteur Python pour l’environnement virtuel et ses utilitaires.

Chaque environnement virtuel contient sa propre copie de l’interpréteur Python, et peut donc être lourd. Un virtualenv Python 3.9 consomme entre 15 MB et 25 MB d’espace disque en fonction du système d’exploitation.

Comment activer le virtualenv ?

Après avoir créé l’environnement virtuel, il est nécessaire de l’activer avant de pouvoir l’utiliser. Une fois activé, ce virtualenv restera l’interpréteur Python par défaut pendant toute la durée de la session shell.

En fonction du système d’exploitation et du shell de commande utilisé, il est nécessaire d’utiliser différentes syntaxes pour activer l’environnement.

Sur Unix ou macOS, on utilise la commande « source /path/to/venv/bin/activate » avec le shell bash. Il faut rajouter « .csh » si on utilise le shell csh, et « .fish » si on utilise le shell fish.

Sur Windows, on utilise le code « path\to\venv\Scripts\activate.bat » avec l’invite de commande et « path\to\venv\Scripts\activate.bat » avec PowerShell.

Notez que l’environnement activé fonctionne uniquement dans le contexte où il a été activé. Par exemple, si vous lancez deux instances de PowerShell et que vous n’activez le virtualenv que dans l’une des deux il ne s’appliquera que pour celle-ci.

De nombre IDE (environnements de développement intégrés) détectent et activent automatiquement un environnement virtuel s’il se trouve dans le dossier du projet actuel. C’est par exemple le cas de Microsoft Visual Studio Code avec l’extension Python. Il suffit d’ouvrir un terminal dans Visual Studio Code pour activer automatiquement l’environnement virtuel sélectionné.

Comment configurer et utiliser l'environnement virtuel ?

Après avoir activé le nouvel environnement virtuel, vous pouvez utiliser le gestionnaire de package pip pour ajouter et modifier ses packages. Vous trouverez pip dans le sous-dossier « Scripts » sur Windows, et dans le sous-dossier « bin » sur Unix.

Assurez-vous d’utiliser l’instance de pip gérant les packages pour l’environnement virtuel dans le contexte où il a été activé. Il peut s’agir par exemple d’une session bash ou Windows CLI/PowerShell.

Pour vérifier que vous utilisez le bon pip et le bon environnement virtuel, tapez « pip -V » et vérifiez que le chemin affiché mène au sous-dossier de votre environnement virtuel.

Pour utiliser l’environnement virtuel créé pour exécuter les scripts Python, il suffit d’invoquer Python depuis la ligne de commande dans le contexte où vous l’avez activé.

Comment gérer les packages dans les environnements virtuels ?

Lorsque vous créez un nouvel environnement virtuel, les packages pip et setuptools sont installés. En revanche, il est nécessaire d’installer tous les autres packages que vous souhaitez utiliser dans l’environnement.

Pour les projets aux besoins complexes, gardez une liste des éléments requis sous forme de fichier « requirements.txt » dans la racine du projet. Si vous avez besoin de recréer l’environnement virtuel, vous pouvez réinstaller tous les packages requis avec la commande « pip install -r requirements.txt ».

Les copies de pip et setuptools sont locales pour l’environnement virtuel. Chaque virtualenv a ses propres copies, nécessitant d’être mises à jour et maintenues indépendamment. Ainsi, vous pouvez recevoir des alertes indiquant que pip doit être mis à jour dans une partie des environnements.

Comment désactiver l'environnement virtuel ?

Après avoir fini d’utiliser l’environnement virtuel, vous pouvez terminer la session où vous l’utilisiez. Si vous souhaitez continuer à travailler dans la même session avec l’interpréteur Python par défaut, tapez la commande « desactivate » dans l’invite.

Les utilisateurs de l’invite de commande Windows doivent exécuter « deactivate.bat » à partir du sous-dossier Scripts. Avec PowerShell sur Windows ou sur le OS Unix, il suffit de taper « deactivate » dans n’importe quel dossier.

Comment supprimer un environnement virtuel ?

Les environnements virtuels sont autonomes et indépendants. Quand vous n’avez plus besoin d’un virtualenv, il suffit de supprimer son dossier.

Toutefois, assurez-vous de fermer toutes les copies de Python utilisant l’environnement virtuel en cours d’exécution. Ceci évitera tout problème technique éventuel.

Comment mettre à jour les environnements virtuels ?

Si vous mettez à jour le runtime Python sur votre système, les environnements virtuels ne sont pas mis à jour automatiquement. Pour cause, un changement de version Python peut gêner le fonctionnement de packages.

Dans le cas d’une mise à jour mineure de Python, vous pouvez mettre à jour l’environnement virtuel en tapant la commande « python -m venv /path/to/venv –upgrade » dans l’invite de commande du dossier du projet. Veillez à ne pas activer l’environnement virtuel auparavant, car la mise à jour risque de ne pas fonctionner.

Si vous avez installé une mise à jour majeure de Python, il est nécessaire de créer un nouvel environnement virtuel utilisant cette version du langage. N’essayez pas de mettre à jour l’environnement virtuel dans ce cas de figure.

Les environnements virtuels sur Python 2

Sous Python 2, les environnements virtuels ne sont pas une fonctionnalité native. Il est nécessaire d’installer des bibliothèques tierces pour créer et gérer.

La bibliothèque la plus populaire et la plus utilisée est virtualenv. Elle permet de créer une structure de dossier et de copier les fichiers requis dans un environnement virtuel.

Pour installer cette library, il vous suffit d’utiliser la commande « pip install virtualenv ». Pour créer un dossier d’environnement virtuel, tapez « virtualenv / path/to/directory ».

L’activation et la désactivation des environnements virtuels fonctionnent de la même façon que pour les environnements virtuels modernes sous Python 3.

Toutefois, gardez en tête qu’il est déconseillé d’utiliser Python 2 pour tout nouveau projet de développement. Cette ancienne version du langage ne doit être utilisée que pour la maintenance d’anciens projets, en attendant de les migrer vers Python 3.

Python virtualenv et notebooks Jupyter

Si vous utilisez les notebooks Jupyter ou IPython, créez et activez votre environnement virtuel puis tapez la commande « pip install ipykernel » pour ajouter les composants nécessaires pour IPython.

Enfin, tapez la commande « ipython kernel install -user -name= ». Remplacez « projet_name » par le nom du projet. Vous pouvez désormais lancer Jupyter et passer au kernel IPython installé au sein de l’environnement virtuel.

Comment apprendre la programmation en Python ?

La maîtrise de Python est une compétence très recherchée en entreprise. Toutefois, ce langage comporte de nombreuses subtilités comme les environnements virtuels.

Afin d’acquérir cette expertise, vous pouvez choisir DataScientest. Toutes nos formations comportent un module dédié à la programmation Python.

Vous découvrirez les fondamentaux du langage Python, mais aussi les bibliothèques de Data Science comme Pandas et NumPy. Les autres modules couvrent l’analyse de données, la DataViz, le Machine Learning ou encore la Business Intelligence.

À la fin de la formation choisie, vous aurez toutes les compétences requises pour exercer le métier de Data Scientist, Data Analyst, Data Engineer ou Data Manager.

Tous nos cursus s’effectuent à distance, et adoptent une approche Blended Learning alliant apprentissage coaché sur notre plateforme en ligne et Masterclass. Vous pouvez choisir entre un mode BootCamp intensif ou une Formation Continue.

Pour le financement, notre organisme est éligible au Compte Personnel de Formation et d’autres dispositifs comme la POEI avec Pôle Emploi. N’attendez plus et découvrez DataScientest !

Vous savez tout sur Python Virtualenv et les environnements virtuels. Pour plus d’informations sur le sujet, découvrez notre dossier complet sur Python et notre dossier sur les IDE.

Facebook
Twitter
LinkedIn

DataScientest News

Inscrivez-vous à notre Newsletter pour recevoir nos guides, tutoriels, et les dernières actualités data directement dans votre boîte mail.

Vous souhaitez être alerté des nouveaux contenus en data science et intelligence artificielle ?

Laissez-nous votre e-mail, pour que nous puissions vous envoyer vos nouveaux articles au moment de leur publication !

Newsletter icone
icon newsletter

DataNews

Vous souhaitez recevoir notre
newsletter Data hebdomadaire ?