Python (Français)/Virtual environment (Français)

From ArchWiki

virtualenv est un outil utilisé pour créer un espace de travail isolé pour une application Python. Il présente divers avantages tels que la possibilité d'installer des modules localement, d'exporter un environnement de travail et d'exécuter un programme Python dans cet environnement.

Vue d'ensemble

Un environnement virtuel est un répertoire dans lequel sont installés des binaires et des scripts shell. Les binaires comprennent python pour l'exécution des scripts et pip pour l'installation d'autres modules dans l'environnement. Il existe également des scripts shell (un pour bash, csh et fish) pour activer l'environnement. Essentiellement, un environnement virtuel imite une installation complète de Python et de tous les modules souhaités sans interférer avec le système sur lequel l'application pourrait s'exécuter.

En 2017, Pipenv a été publié et gère tous les outils ci-dessus - la gestion des environnements virtuels des interprètes python, les dépendances des paquets, leur activation et le verrouillage reproductible des versions dans les Pipfiles.

Installation

Python 3.3+ est livré avec un module appelé venv. Pour les applications qui nécessitent une version plus ancienne de Python, il faut utiliser virtualenv.

Paquets

Installer un de ces paquets pour utiliser un environnement virtuel Python :

Pour Pipenv:

Utilisation

Les trois outils utilisent un procédé similaire.

Création

Utilisez venv ou virtualenv pour créer l'environnement virtuel dans le répertoire de votre projet. Assurez-vous d'exclure le répertoire venv du contrôle de version - une copie de pip freeze suffira à le reconstruire.

venv

Note: Cette méthode remplace le script pyvenv, qui est supprimé dans python 3.8.

Cet outil est fourni par python (3.3+) :

$ python -m venv envname

virtualenv

Utilisez virtualenv pour Python 3, disponible dans python-virtualenv.

$ virtualenv envname

Activation

Utilisez l'un des scripts shell fournis pour activer et désactiver l'environnement. Cet exemple suppose que l'on utilise bash.

$ source envname/bin/activate
(envname) $

Une fois dans l'environnement virtuel, les modules peuvent être installés avec pip et les scripts peuvent être exécutés de façon normale.

Pour quitter l'environnement virtuel, exécutez la fonction fournie par bin/activate :

(envname) $ deactivate

Versions de Python

Par défaut, les environnements virtuels sont créés à l'aide du système Python. Le binaire bin/python est juste un lien symbolique vers le système python :

$ ls -l envname/bin/python
lrwxrwxrwx 1 foo foo 15 Jan 29 18:48 envname/bin/python -> /usr/bin/python

Si vous souhaitez utiliser une version différente de Python dans l'environnement virtuel, vous pouvez utiliser l'option -p/--python de virtualenv :

$ virtualenv -p 3.8 envname
$ ls -l envname/bin/python
lrwxrwxrwx 1 foo foo 18 Jan 29 18:48 envname/bin/python -> /usr/bin/python3.8

pypy3 peut également être utilisé :

$ virtualenv -p pypy3 envname

virtualenvwrapper

virtualenvwrapper permet une interaction plus naturelle en ligne de commande avec vos environnements virtuels en exposant plusieurs commandes utiles pour créer, activer et supprimer des environnements virtuels. Ce paquet est un wrapper pour python-virtualenv.

Installation

Installer le paquet python-virtualenvwrapper et ajoutez les lignes suivantes à votre ~/.bashrc :

export WORKON_HOME=~/.virtualenvs
source /usr/bin/virtualenvwrapper.sh

La ligne source /usr/bin/virtualenvwrapper.sh peut causer des ralentissements lors du démarrage d'un nouveau shell. Pour corriger cela, essayez d'utiliser source /usr/bin/virtualenvwrapper_lazy.sh, qui chargera virtualenvwrapper la première fois que les fonctions de virtualenvwrapper seront appelées.

Rouvrez votre console pour appliquer les changements. Le répertoire WORKON_HOME sera créé automatiquement.

Utilisation de base

Voir https://virtualenvwrapper.readthedocs.io/en/latest/ pour l'utilisation (et les possibilités d'extension).

Créer l'environnement virtuel (toutes les options de la ligne de commande sauf -a, -i, -r, et -h sont transmises directement à virtualenv, vous pouvez donc utiliser -p pour sélectionner la version de Python) :

$ mkvirtualenv envname

Activer l'environnement virtuel :

$ workon envname

Installer un paquet dans l'environnement virtuel (par exemple, Django) :

(envname) $ pip install django

Une fois que vous avez fait ce que vous aviez à faire, quittez l'environnement virtuel :

Pipenv

pipenv permet de mieux gérer les interactions avec l'interface de programmation en fournissant un programme unique qui exécute toutes les fonctions des outils ci-dessus.

Installation

Installer le paquet python-pipenv.

Utilisation de base

Toutes les commandes peuvent être exécutées dans le dossier du projet, et pipenv reconnaîtra la situation spécifique - si un virtualenv existe dans le répertoire, il le localisera, et s'exécutera sur l'interpréteur virtuel spécifique lorsque pipenv sera exécuté.

Plus d'information à [1], [2], [3].

Voir aussi