Logo Python

Les environnements virtuels Python

Python


Lorsque l’on code sur différents projets en même temps, on a vite tendance à avoir des dépendances concurrentes ou encore incompatible entre les projets ou avec l’OS. En Python, vous pouvez utiliser ce que l’on appelle les environnements virtuels. Ces environnements permettent de travailler sur différents projets de manière totalement isolée du point de vue de la version Python utilisée ainsi que du point de vue des dépendances.

Les environnements virtuels existent en Python2 avec virtualenv et ont été intégré au sein de Python3 avec venv à partir de la version 3.3. L’utilisation de ces environnement est sensiblement la même, seuls l’installation et la création de environnement diffèrent.

En Python 2

Installation de virtualenv

Pour construire des environnements virtuels, il vous faudra installer virtualenv. 2 solutions s’offrent à vous pour installer cette bibliothèque. La première solution utilise le gestionnaire de paquet Debian.

# apt-get install python-virtualenv

La seconde solution utilise pip, il vous faudra avoir installer pip avant.

# apt-get install python-pip

Cette solution a l’avantage de bénéficier de la souplesse de pip dans la gestion des versions et de mises à jour plus rapide que par le système de paquet.

$ pip install --user virtualenv

L’option --user est facultative. Elle permet d’installer la bibliothèque dans le répertoire .local/ de votre HOME. Si c’est la première fois que vous utilisez cette option, il vous faudra rajouter ~/.local/bin dans votre path en ajoutant la ligne suivante à la fin de votre .bashrc.

PATH=$PATH:~/.local/bin

Création de l’environnement virtuel

Vous pouvez créer l’environnement virtuel via la simple commande suivante :

$ virtualenv ~/env/project

Votre environnement virtuel est créé. L’utilisation est décrite ci-dessous.

En Python 3 (>3.3)

Les versions de Python 3 inférieur à la release 3.3 ne possèdent pas de système d’environnement virtuel. Il a été intégré dans les bibliothèques standard de Python à partir de cette version. Si vous avez installé Python3 depuis les sources comme décrit dans l’article Installer Python depuis les sources, vous avez déjà le système d’environnement virtuel. Si vous avez installer Python3 depuis apt-get, il vous faut installer le paquet suivant python3-venv.

# apt-get install python3-venv

Création de l’environnement

La création de l’environnement est en tout point semblable à la création avec virtualenv, on change juste le nom pour utiliser pyvenv

$ pyvenv ~/env/projet

Utilisation de l’environnement

Pour utiliser votre environnement virtuel, vous devez l’activer.

$ source ~/env/project/bin/activate

Cette commande activera votre environnement virtuel, la version Python et les bibliothèques utilisées seront celles incluses dans l’environnement virtuel. Le script activate, changera votre PATH pour ajouter le PATH de l’environnement virtuel, modifiera votre PS1 pour ajouter le nom de l’environnement virtuel et déclarera la commande deactivate qui vous permet de quitter l’environnement virtuel.

Gestion des dépendances

Au sein des environnements virtuels, il est fréquent d’utiliser pip pour gérer les dépendances au projet. pip est un gestionnaire de paquet spécifique à Python. Il peut être utilisé au sein d’un environnement virtuel ou non.

Pour installer un nouveau paquet, vous devez utiliser la commande suivante :

$ pip install

Une fois l’ensemble de vos dépendances installées dans votre environnement, vous souhaiterez certainement enregistrer la liste de ces dépendances. La commande suivante vous permettra de ressortir l’ensemble des dépendances installées :

$ pip freeze

Il est de norme d’utiliser un fichier requirements.txt à la racine du projet pour répertorier l’ensemble des dépendances du projet. Pour constituer votre fichier requirements.txt, vous pouvez utiliser la commande suivante :

$ pip freeze > requirements.txt

Si vous récupérez un projet contenant le fichier requirements.txt, vous pouvez installer l’ensemble des dépendances requises via la commande suivante :

pip install -r requirements.txt

Plus d’informations :
Python3 – Creation of virtual environments
Pep 0405 – Python Virtual Environments
Python packaging – Creating Virtual Environments

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur comment les données de vos commentaires sont utilisées.