Outils pour utilisateurs

Outils du site


virtualenv

Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Prochaine révision
Révision précédente
virtualenv [2014/10/16 08:47]
luc créée
virtualenv [2024/01/25 08:44] (Version actuelle)
luc
Ligne 1: Ligne 1:
-===== virtualenv pour développer en python =====+====== Environnements virtuels pour Python ======
  
-[[http://sametmax.com/les-environnement-virtuels-python-virtualenv-et-virtualenvwrapper/|source]] très largement copiée+Dans l'histoire des environnements virtuels, il y a avant Python 3.4 où les environnements virtuels sont gérés par des outils tierces ; puis après Python 3.4 où un outil natif `venv` 
 + 
 +Il y aussi [[conda]] pour gérer des environnements virtuels avec des versions de python no  dispo sur le système hôte et/ou avec des paquets compilés nécessitant des dépendances). 
 + 
 +===== Depuis Python 3.4 : venv ===== 
 + 
 +<code bash> 
 +# Créer un environnement virtuel 
 +python -m venv <path/to/directory> 
 + 
 +# Créer un environnement virtuel avec accès aux packages du système hôte 
 +python -m venv --system-site-packages <path/to/directory> 
 + 
 +# Activer l'environnement virtuel 
 +source </path/to/directory>/bin/activate   # note : selon l'interpreteur bash/zsh/.. il y a différents activate 
 + 
 +# Désactiver l'environnement virtuel 
 +deactivate 
 + 
 +# Supprimer un environnement virtuel (non-activé) 
 +rm -r <path/to/directory> 
 + 
 +</code> 
 + 
 +Note: Pycharm peut gérer la création et l'activation des environnements virtuels :) 
 + 
 +===== Avant Python 3.4 ===== 
 + 
 +Voici une [[http://sametmax.com/les-environnement-virtuels-python-virtualenv-et-virtualenvwrapper/|source]] et une [[https://wiki.archlinux.org/index.php/Python_VirtualEnv|autre source]], dont je me suis très largement inspirée pour cette entrée 
 + 
 +Quand on commence à beaucoup programmer en python ou installer de nombreux services (mediagoblin, mailpile...), ça peut vite devenir le bazar et des conflits peuvent apparaître entre les différents modules ou leurs versions. 
 +Dans l'univers python, il existe cependant une solution assez simple d'emploi : //virtualenv// 
 + 
 +==== virtualenv ==== 
 + 
 +=== installation === 
 + 
 +Disponible su //pypi//, on peut l'installer avec pip 
 +<code>pip install virtualenv</code> 
 + 
 +=== utilisation === 
 + 
 +== créer un environnement == 
 + 
 +C'est tout simple :  
 +<code>virtualenv /path/vers/projet/nomEnv</code> 
 +Un dossier sera créé avec l'environnement python complet : interpréteur, modules ... 
 + 
 +on peut aussi choisir une version de l'interpreteur en particulier : 
 +<code>virutalenv monEnv -p /usr/bin/python2.6</code> 
 + 
 +On peut inclure ou exclure à la création de l'environnement les outils/modules du système (selon les versions, l'une ou l'autre option est activée par défaut) : 
 +<code> 
 +--no-site-package      # fournit un environnement vierge 
 +--system-site-packages # tout ce qui est installé sur l'OS ou qui sera installé sera disponible dans l'environnement 
 +</code> 
 + 
 +== utiliser un environnement == 
 + 
 +C'est pas compliqué non plus, depuis votre console bash : 
 +<code>source /path/vers/projet/nomEnv/bin/activate</code> 
 + 
 +le prompt de la console changera et vous serez dans l'environnement isolé. 
 +Si par exemple vous utilisez pip dans cet environnement, les modules seront installés seulement dans l'environnement 
 + 
 +Pour quitter un environnement, tapez simplement : 
 +<code>deactivate</code> 
 + 
 +== utiliser un script dans un environnement depuis l'extérieur == 
 + 
 +ça marche aussi, c'est un peu plus long à écrire : 
 +<code>/path/vers/projet/monEnv/bin/python mon_script.py</code> 
 + 
 +== supprimer un environnement == 
 + 
 + 
 + 
 + 
 + 
 +==== virtualenvwrapper ==== 
 + 
 +virtualenvwrapper est un outil qui permet de se faciliter l'utilisation de virtualenv 
 + 
 +=== installation === 
 + 
 +On peut trouver le paquet ''python-virtualenvwrapper'' dans les dépots, mais aussi sur pypi (pip !) 
 +Une fois le paquet/module installé, il faut configurer le bouzin, ça se passe dans ''~/.bashrc'' 
 +<code> 
 +... 
 +export WORKON_HOME=~/.virtualenvs 
 +VIRTUALENVWRAPPER_PYTHON=/usr/bin/python3 # si le python par défaut n'est pas le 3 
 +source /usr/bin/virtualenvwrapper.sh 
 +</code> 
 + 
 +Il faut ensuite créer ce dossier ''WORKON_HOME'' (note : la variable d'environnement ne sera active par défaut qu'après réouverture de la session puisqu'elle est renseignée dans ''.bashrc''
 +<code>mkdir $WORKON_HOME</code> 
 + 
 +=== utilisation === 
 + 
 +== créer un environnement == 
 + 
 +Les options sont identiques à virtualenv, mais ce coup ci le chemin peut être relatif (ce sera mis dans ''WORKON_HOME''
 +<code>mkvirtualenv -p /usr/bin/python2.6 monEnv</code> 
 + 
 +== travailler dans un environnement == 
 + 
 +<code>workon monEnv</code> 
 +Une fois dans l'environnement, rien ne change, installation via pip dans l'environnement, ''deactivate'' ... 
 + 
 +== supprimer un environnement == 
 + 
 +tout simplement : 
 +<code>rmvirtualenv monEnv</code>
  
-  
virtualenv.1413449252.txt.gz · Dernière modification: 2018/10/13 20:32 (modification externe)