Environnements virtuels¶
Un environnement virtuel est un outil pour garder les dépendances requises par différents projets dans des emplacements séparés, en créant des environnements virtuels Python pour eux. Il résout le dilemme “le projet X dépend de la version 1.x mais le projet Y nécessite la 4.x”, et garde votre répertoire site-packages global propre et gérable.
Par exemple, vous pouvez travailler sur un projet qui nécessite Django 1.3 tout en maintenant aussi un projet qui nécessite Django 1.0.
virtualenv¶
virtualenv est un outil pour créer des environnements virtuels Python isolés. virtualenv crée un dossier qui contient tous les exécutables nécessaires pour utiliser les paquets qu’un projet Python pourrait nécessiter.
Installez virtualenv via pip:
$ pip install virtualenv
Usage basique¶
Créer un environnement virtuel pour un projet:
$ cd my_project_folder
$ virtualenv venv
virtualenv venv` créera un dossier dans le répertoire courant qui contiendra les fichiers exécutables Python, et une copie de la bibliothèque ``pip
que vous pouvez utiliser pour installer d’autres paquets. Le nom de l’environnement virtuel (dans ce cas, c’était venv
) peut être n’importe quoi. Omettre le nom placera les fichiers dans le répertoire courant à la place.
Cela crée une copie de Python selon le répertoire où vous avez exécuté la commande, en le plaçant dans un dossier nommé venv
.
Vous pouvez utiliser un interpréteur Python de votre choix.
$ virtualenv -p /usr/bin/python2.7 venv
Cela utilisera l’interpréteur Python dans /usr/bin/python2.7
Pour commencer à utiliser l’environnement virtuel, il doit être activé:
$ source venv/bin/activate
Le nom de l’environnement virtuel actuel apparaît maintenant sur la gauche de l’invite (c’est à dire (venv)Votre-Ordinateur:votre projet VotreNomUtilisateur$)
pour vous indiquer qu’il est actif. A partir de maintenant, tous les paquets que vous installez en utilisant pip seront placés dans le dossier venv
, isolés de l’installation globale de Python.
Installez les paquets comme d’habitude, par exemple:
$ pip install requests
Si vous avez terminé de travailler dans l’environnement virtuel pour le moment, vous pouvez le désactiver:
$ deactivate
Cela vous fait revenir à l’interpréteur par défaut Python du système, avec toutes ses bibliothèques installées.
Pour supprimer une environnement virtuel, supprimez juste son dossier. (Dans ce cas, ce serait rm -rf venv
.)
Après un certain temps, cependant, vous pourriez vous retrouver avec un grand nombre d’environnements virtuels un peu partout dans votre système, et il est possible que vous oubliez leurs noms ou où ils ont été placés.
Autres notes¶
Exécuter virtualenv
avec l’option --no-site-packages
n’inclura pas les paquets qui sont installés globalement. Cela peut être utile pour garder la liste des paquets propre dans le cas où il est nécessaire d’y accéder plus tard. [Ceci est le comportement par défaut de virtualenv
1.7 et supérieur.]
Afin de garder votre environnement cohérent, c’est une bonne idée de “geler” l’état actuel des paquets de l’environnement. Pour ce faire, exécutez
$ pip freeze > requirements.txt
Cela va créer un fichier requirements.txt
, qui contient une liste simple de tous les paquets qui sont dans l’environnement actuel, et leurs versions respectives.Vous pouvez voir la liste des paquets installés sans le format requirements en utilisant “pip list”. Plus tard, il sera plus facile pour un développeur différent (ou vous, si vous avez besoin de recréer l’environnement) d’installer les paquets en utilisant les mêmes versions:
$ pip install -r requirements.txt
Cela peut aider à assurer la cohérence entre installations, entre déploiements et entre développeurs.
Enfin, rappelez-vous d’exclure le dossier de l’environnement virtuel du gestionnaire de version en l’ajoutant à la liste des fichiers ignorés.
virtualenvwrapper¶
virtualenvwrapper fournit un jeu de commandes qui permet le travail avec des environnements virtuels beaucoup plus agréable. Il place également tous vos environnements virtuels dans un seul endroit.
Pour installer (assurez-vous que virtualenv est déjà installé):
$ pip install virtualenvwrapper
$ export WORKON_HOME=~/Envs
$ source /usr/local/bin/virtualenvwrapper.sh
(Instructions d’installation virtualenvwrapper complètes.)
Pour Windows, vous pouvez utiliser le virtualenvwrapper-win.
Pour installer (assurez-vous que virtualenv est déjà installé):
$ pip install virtualenvwrapper-win
Sous Windows, le chemin par défaut pour WORKON_HOME est %USERPROFILE%Envs
Usage basique¶
Créez un environnement virtuel:
$ mkvirtualenv venv
Cela créé un dossier venv
dans ~/Envs
.
Travailler sur un environnement virtuel:
$ workon venv
Alternativement, vous pouvez faire un projet, ce qui crée un environnement virtuel, et aussi un répertoire de projet à l’intérieur de $PROJECT_HOME
, dans lequel vous êtes automatiquement placé via cd
quand vous lancez workon myproject
.
$ mkproject myproject
virtualenvwrapper fournit une auto-complétion à la tabulation sur les noms d’environnement. Il aide vraiment quand vous avez beaucoup d’environnements et avez du mal vous souvenir de leurs noms.
workon
désactive aussi n’importe quel des environnements où vous êtes actuellement, de sorte que vous pouvez rapidement basculer entre les environnements.
La désactivation est toujours la même:
$ deactivate
Pour supprimer:
$ rmvirtualenv venv
Autres commandes utiles¶
lsvirtualenv
Lister tous les environnements
cdvirtualenv
Naviguez dans le répertoire de l’environnement virtuel actuellement activé, de sorte que vous pouvez parcourir son
site-packages
, par exemple.cdsitepackages
Come ci-dessus, mais directement dans le répertoire
site-packages
.lssitepackages
Montre le contenu du répertoire
site-packages
.
Liste complète des commandes de virtualenvwrapper <http://virtualenvwrapper.readthedocs.org/en/latest/command_ref.html>`_.
virtualenv-burrito¶
Avec virtualenv-burrito, vous pouvez avoir un environnement de travail virtualenv + virtualenvwrapper en une seule commande.
autoenv¶
Quand vous faites un cd
dans un répertoire contenant un .env
, autoenv active l’environment automatiquement, par magie .
Installez-le sous Mac OS X en utilisant brew
:
$ brew install autoenv
Et sous Linux:
$ git clone git://github.com/kennethreitz/autoenv.git ~/.autoenv
$ echo 'source ~/.autoenv/activate.sh' >> ~/.bashrc