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édentesRévision précédente
Prochaine révision
Révision précédente
Prochaine révisionLes deux révisions suivantes
virtualenv [2020/03/26 12:59] – [Python: Virtualenv] sergevirtualenv [2021/03/10 12:56] – [Résumé à apprendre par cœur] serge
Ligne 1: Ligne 1:
 ====== Python: Virtualenv ====== ====== Python: Virtualenv ======
  
-<WRAP center round info centeralign 60%> +<WRAP center round box 60% centeralign
-**Niveau Pro**+**[[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>
  
-<WRAP center round box 60%> +  * **[[https://docs.python.org/fr/3/tutorial/index.html|Le tutoriel Python]]** de la fondation Python fr.
-Voir aussi: **[[lancer_correctement_python|Lancer correctement python]]** +
-</WRAP>+
  
-=====Virtualenv===== +===== Résumé à apprendre par cœur =====
-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é.+<code bash> 
 +# Installation de venv pour 3.
 +sudo apt install python3.8-venv
  
-Le problème de base à résoudre est celui des dépendances et des versions et des autorisations indirectes. Imaginez que vous ayez une application qui nécessite la version 1 de LibFoo, mais une autre application nécessite la version 2. Comment 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> 
 +cd /le/dossier/de/votre/projet/truc/ 
 +   
 +# Création du dossier environnement si pas encore créé 
 +python3 -m venv mon_env
  
-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.+# Activation  
 +source mon_env/bin/activate 
 +# le prompt devient (mon_env) machin@127:/../../../projets/truc/
  
-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 ?+# Installation des package 
 +python3 -m pip install wheel  # bug debian ubuntu 
 +python3 -m pip install -r requirements.txt
  
-Dans tous ces cas, **virtualenv** peut vous aiderIl 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 d'un package supplémentaire 
 +python3 -m pip install Pillow==7.1.1
  
-====Ressources==== +# Création ou recréation de  
-  * **[[https://deusyss.developpez.com/tutoriels/Python/Virtualenvs/|Virtualenvs de GALODE Alexandre sur developpez.com]]**+pip freeze > requirements.txt 
 +   
 +# Liste de tous les paquets dans le virtualenv 
 +pip list
  
-=====Comment créer un virtualenv ?===== +# Exécution d'un script 
-Voici la marche à suivre pour créer le « virtualenv ».+python3.7 -m mon_fichier.py
  
-====Installation==== +# Dans Geany, commande de construction 
-  sudo apt-get install python3-venv+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!
  
-====Utilisation====+  * **[[https://docs.python.org/fr/3/tutorial/venv.html|Environnements virtuels et paquets]]** sur la Doc officielle docs.python.org
  
-  python3 -m venv ~/VEnv +====Création d'environnements virtuels==== 
-crée un dossier /home/user/VEnv +https://docs.python.org/fr/3/tutorial/venv.html#creating-virtual-environments
-===1ère solution===+
  
-  source ~/VEnv/bin/activate+Création d'un dossier tutorial-env dans le dossier de votre projet toto: /../../../projets/toto/ 
 +  /../../../projets/toto/$ python3 -m venv mon_env
  
-équivalent à+Activation de l'environnement: 
 +  source mon_env/bin/activate 
 +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
  
-  source /home/user/VEnv/bin/activate +===Installation d'un paquet dans cet environnement=== 
-   +  python3 -m pip install Pillow==7.1.1 
-Le prompt devient:+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
  
-  (VEnv) user@PC01:~$ +<code> 
 +  Package       Version 
 +------------- ------- 
 +Pillow        7.1.1   
 +pip           18.1    
 +pkg-resources 0.0.0   
 +setuptools    40.8.0 
 +</code>
  
-Installation des modules appelés par votre projet: +===Installation de tous les paquets requis=== 
-  pip3 install twisted librosa bs4 +  python3 -m pip install -r requirements.txt 
-Puisque l'installation se fait dans le homepas besoin d'être root, pas de sudo.+==== Génération du fichier requirements.txt ==== 
 +Pour faciliter la distribution de votre projet dans son virtualenvil 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
      
-===2ème solution=== +====Lancement d'un script==== 
-Utiliser l’interpréteur installé dans le « virtualenv » : +  python3 mon_script.py
-    * ~/VEnv/bin/python3` (qui peut être utilisé comme shebang aussi bien sur) +
- +
-===Ensuite=== +
-  cd /vers/votre/projet +
-  nohup python3 main.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]]**
  
-Dans un terminal, dans le dossier de requirements.txt, installation dans le système+Ne faites pas: 
-  pip3 install -r requirements.txt +  sudo pip install black  
-   +  black mon_fichier.py 
-===Exemple===   +Mais faites
-Ouvrir un terminal dans le dossier de votre projet  +  python3.7 -m pip install black --user  
-  python3 -m venv ~/VEnv +  python3.7 -m black mon_fichier.py 
-  source ~/VEnv/bin/activate + 
-  pip3 install -r requirements.txt +Notez le --user, ainsi que les deux usages de -m.\\ 
-  python3 mon_script.py+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: 
 + 
 +  python3.7 -m pip install black --user 
      
 +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.txt · Dernière modification : 2022/05/06 15:49 de serge