Python (Français)/Virtual environment (Français)
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 :
- Python 3.3+: python
- Python 3: python-virtualenv
Pour Pipenv:
- Python 3: python-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
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].