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

Les deux révisions précédentes Révision précédente
Prochaine révision
Révision précédente
virtualenv [2020/03/26 14:00]
serge [Python: Virtualenv]
virtualenv [2021/03/10 13:56] (Version actuelle)
serge [Résumé à apprendre par cœur]
Ligne 1: Ligne 1:
 ====== Python: Virtualenv ====== ====== Python: Virtualenv ======
- 
-<WRAP center round info centeralign 60%> 
-**Niveau Pro** 
-</WRAP> 
  
 <WRAP center round box 60% centeralign> <WRAP center round box 60% centeralign>
-Voir aussi: **[[lancer_correctement_python|Lancer correctement python]]**+**[[toutes_les_pages_sur_python|Toutes les pages sur Python]] sans les pages sur {{tagpage>kivy|Kivy}}**\\ 
 +**[[http://translate.google.com/translate?hl=&sl=auto&tl=en&u=https%3A%2F%2Fressources.labomedia.org%2Fvirtualenv|English Version]]**
 </WRAP> </WRAP>
  
-=====Virtualenv===== +  * **[[https://docs.python.org/fr/3/tutorial/index.html|Le tutoriel Python]]** de la fondation Python fr.
-Extrait de [[https://www.delahayeyourself.info/modules/LP%20Web%20Dynamique/python/tp3_pip_virtualenv/|delahayeyourself.inf]]:+
  
-**virtualenv** est un outil pour créer un environnement Python isolé.+===== Résumé à apprendre par cœur =====
  
-Le problème de base à résoudre est celui des dépendances et des versions et des autorisations indirectesImaginez que vous ayez une application qui nécessite la version 1 de LibFoo, mais une autre application nécessite la version 2Comment pouvez-vous utiliser ces deux applications ? Si vous installez tout dans /usr/lib/python2.7/site-packages, il est facile de vous retrouver dans une situation où vous mettez involontairement à niveau une application qui ne devrait pas être mise à niveau.+<code bash> 
 +# Installation de venv pour 3.
 +sudo apt install python3.8-venv
  
-Ou plus généralement, que faire si vous souhaitez installer une application et la laisser en place ? Si une application fonctionne, toute modification apportée à ses bibliothèques ou aux versions de ces bibliothèques peut briser l'application.+<code bash> 
 +cd /le/dossier/de/votre/projet/truc/ 
 +   
 +# Création du dossier environnement si pas encore créé 
 +python3 -m venv mon_env
  
-De plus, que faire si vous ne pouvez pas installer les packages dans le répertoire global de sites-packages? Par exemple, par exemple sur un hôte distant dont vous n'avez pas les droits ?+# Activation  
 +source mon_env/bin/activate 
 +le prompt devient (mon_env) machin@127:/../../../projets/truc/
  
-Dans tous ces cas, **virtualenv** peut vous aider. Il crée un environnement qui possède ses propres répertoires d’installation, qui ne partage pas les bibliothèques avec d’autres environnements **virtualenv** (et qui n’a pas accès aux bibliothèques installées dans le système).+# Installation des package 
 +python3 -m pip install wheel  # bug debian ubuntu 
 +python3 -m pip install -r requirements.txt
  
-====Ressources==== +# Installation d'un package supplémentaire 
-  * **[[https://deusyss.developpez.com/tutoriels/Python/Virtualenvs/|Virtualenvs de GALODE Alexandre sur developpez.com]]**+python3 -m pip install Pillow==7.1.1
  
-=====Comment créer un virtualenv ?===== +# Création ou recréation de  
-Voici la marche à suivre pour créer le « virtualenv ».+pip freeze > requirements.txt 
 +   
 +# Liste de tous les paquets dans le virtualenv 
 +pip list
  
-====Installation==== +# Exécution d'un script 
-  sudo apt-get install python3-venv+python3.7 -m mon_fichier.py
  
-====Utilisation====+# Dans Geany, commande de construction 
 +mon_env/bin/python3 "%f" 
 +</code> 
 +   
 +====Pour une relance==== 
 +  cd /le/dossier/de/votre/projet/truc/ 
 +  source mon_env/bin/activate 
 +  python3.7 -m mon_fichier.py 
 +=====Environnements virtuels en python===== 
 +Un tuto avec du python2.7 en 2020, cela ne ferait pas sérieux!
  
-  python3 -m venv ~/VEnv +  * **[[https://docs.python.org/fr/3/tutorial/venv.html|Environnements virtuels et paquets]]** sur la Doc officielle docs.python.org
-crée un dossier /home/user/VEnv +
-===1ère solution===+
  
-  source ~/VEnv/bin/activate+====Création d'environnements virtuels==== 
 +https://docs.python.org/fr/3/tutorial/venv.html#creating-virtual-environments
  
-équivalent à+Création d'un dossier tutorial-env dans le dossier de votre projet toto: /../../../projets/toto/ 
 +  /../../../projets/toto/$ python3 -m venv mon_env
  
-  source /home/user/VEnv/bin/activate +Activation de l'environnement: 
-   +  source mon_env/bin/activate 
-Le prompt devient:+le prompt devient (tutorial-env) mon_env@127:/../../../projets/toto/\\ 
 +pour voir où vous êtes et tester 
 +  ls 
 +  python3 
 +  import sys 
 +Ctrl + D pour quitter
  
-  (VEnv) user@PC01:~$ +===Installation d'un paquet dans cet environnement=== 
 +  python3 -m pip install Pillow==7.1.1 
 +Successfully installed Pillow-7.1.1, pour voir les infos 
 +  pip show Pillow 
 +pip list liste tous les paquets installés dans l'environnement virtuel: 
 +  pip list
  
-Installation des modules appelés par votre projet: +<code> 
-  pip3 install twisted librosa bs4 +  Package       Version 
-Puisque l'installation se fait dans le home, pas besoin d'être root, pas de sudo. +------------- ------- 
-   +Pillow        7.1.1   
-===2ème solution=== +pip           18.1    
-Utiliser l’interpréteur installé dans le « virtualenv » : +pkg-resources 0.0.0   
-    * ~/VEnv/bin/python3` (qui peut être utilisé comme shebang aussi bien sur)+setuptools    40.8.0 
 +</code>
  
-===Ensuite=== +===Installation de tous les paquets requis=== 
-  cd /vers/votre/projet +  python3 -m pip install -r requirements.txt 
-  nohup python3 main.py &+==== Génération du fichier requirements.txt ==== 
 +Pour faciliter la distribution de votre projet dans son virtualenv, il est recommandé de produire un fichier requirements.txt qui listera toutes les dependances de votre projet.\\ 
 +C'est la liste de tous les paquets que vous avez installé pour votre projet. 
 +  pip freeze > requirements.txt 
 +   
 +====Lancement d'un script==== 
 +  python3 mon_script.py
      
-Le script main.py continuera a tourner dans l'environnement virtuel, même si la console est fermée.+=====Création d'un venv avec une autre version de pythotn===== 
 +Installation de python 3.8 sur Xubuntu 18.04 
 +  * https://askubuntu.com/questions/1197683/how-do-i-install-python-3-8-in-lubuntu-18-04
  
-===== Requirements.txt ===== +  sudo apt update 
-Pour faciliter la distribution de votre projet dans son virtualenv, il est recommandé de produire un fichier requirements.txt qui listera toutes les dependances de votre projet.+  sudo apt install software-properties-common 
 +  sudo add-apt-repository ppa:deadsnakes/ppa 
 +  sudo apt install python3.8
  
-=== Génération du fichier requirements.txt === 
-Pour générer le fichier requirements.txt : 
-  pip freeze > requirements.txt 
  
-=== Installation des modules indiqués dans requirements.txt === +<code bash> 
-<file txt requirements.txt> +cd /mes/projets/keras-jordan-bird/ 
-twisted +python3.8 -m venv mon_env 
-service_identity +sudo apt install python3.8-venv python3.8-dev 
-google-auth-oauthlib +python3.8 -m venv mon_env 
-</file>+source mon_env/bin/activate 
 +python3.8 -m pip install -r requirements.txt 
 +</code> 
 +=====Lancer correctement python===== 
 +  * **[[https://sametmax.com/lancer-correctement-python-et-ses-commandes-cousines/|Lancer correctement python et ses commandes cousines]]** 
 + 
 +Ne faites pas: 
 +  sudo pip install black  
 +  black mon_fichier.py 
 +Mais faites: 
 +  python3.7 -m pip install black --user  
 +  python3.7 -m black mon_fichier.py 
 + 
 +Notez le --user, ainsi que les deux usages de -m.\\ 
 +Ceci va installer black localement, pas au niveau du système. On s’assure qu’on n’utilise bien Python3.6, à l’installation et à l’usage de black. Et comme on n’utilise -m, on a pas à se demander si la commande black est bien sur le PATH (pas besoin de trifouiller son .bashrc) 
 +=====Travailler avec Geany et un Virtual Env===== 
 +  * **[[https://stackoverflow.com/questions/42013705/using-geany-with-python-virtual-environment|Using geany with python virtual environment]]** 
 +Dans "Construire" / "Définir les commandes de construction": 
 +  mon_env/bin/python3 "%f" 
 +{{:media_14:geany_construire.png?200|}} 
 +{{:media_14:construire_execute.png?400|}} 
 +=====Installation d'un package avec pip===== 
 + 
 +====Installer un package==== 
 +Le package est installé dans le home du user:
  
-Dans un terminal, dans le dossier de requirements.txt, installation dans le système: +  python3.-m pip install black --user 
-  pip3 install -r requirements.txt +
-   +
-===Exemple===   +
-Ouvrir un terminal dans le dossier de votre projet:   +
-  python3 -m venv ~/VEnv +
-  source ~/VEnv/bin/activate +
-  pip3 install -r requirements.txt +
-  python3 mon_script.py+
      
 +Pour lancer un script:
  
-===Ressources=== +  python3.-m mon_fichier.py
-  * [[https://deusyss.developpez.com/tutoriels/Python/Virtualenvs/#LVI-D| Copie et déploiement de virtualenv]] +
-  * [[https://deusyss.developpez.com/tutoriels/Python/packaging_pypi/#LIII-D|Installer un groupe de paquets grâce à un fichier requirement]] +
-  * [[https://deusyss.developpez.com/tutoriels/Python/packaging_pypi/#LIII-A|Le format requirement]]+
  
- {{tag>python sb}}+====Mettre à jour pip==== 
 +   
 +  python3.7 -m pip install --upgrade pip 
 +   
 +Si vous avez cette alerte: 
 +  WARNING: The scripts pip, pip3 and pip3.7 are installed in '/home/toto/.local/bin' which is not on PATH. 
 +  Consider adding this directory to PATH or, if you prefer to suppress this warning, use --no-warn-script-location. 
 +   
 +Ajouter au fichier ~/.bashrc 
 + 
 +  # Pour pip, pip3 and pip3.7 
 +  export PYTHONPATH="${PYTHONPATH}:/home/toto/.local/bin" 
 +   
 +{{tag>python sb}}
virtualenv.1585227619.txt.gz · Dernière modification: 2020/03/26 14:00 de serge