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/08 15:15] – [Lancement d'un script] 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> 
 +cd /le/dossier/de/votre/projet/truc/ 
 +   
 +# Création du dossier environnement si pas encore créé 
 +python3 -m venv mon_env
  
-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.+# Activation  
 +source mon_env/bin/activate 
 +# le prompt devient (mon_env) machin@127:/../../../projets/truc/
  
-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.+# Installation des package 
 +python3 -m pip install wheel  # bug de ma debian 10 
 +python3 -m pip install -r requirements.txt
  
-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 d'un package supplémentaire 
 +python3 -m pip install Pillow==7.1.1
  
-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).+# Création ou recréation de  
 +pip freeze > requirements.txt 
 +   
 +# Liste de tous les paquets dans le virtualenv 
 +pip list
  
-====Ressources==== +# Exécution d'un script 
-  * **[[https://deusyss.developpez.com/tutoriels/Python/Virtualenvs/|Virtualenvs de GALODE Alexandre sur developpez.com]]**+python3.7 -m mon_fichier.py
  
-=====Comment créer un virtualenv ?===== +# Dans Geany, commande de construction 
-Voici la marche à suivre pour créer le « virtualenv ».+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!
  
-====Installation==== +  * **[[https://docs.python.org/fr/3/tutorial/venv.html|Environnements virtuels et paquets]]** sur la Doc officielle docs.python.org
-  sudo apt-get install python3-venv+
  
-====Utilisation====+====Création d'environnements virtuels==== 
 +https://docs.python.org/fr/3/tutorial/venv.html#creating-virtual-environments
  
-  python3 -m venv ~/VEnv +Création d'un dossier tutorial-env dans le dossier de votre projet toto: /../../../projets/toto
-crée un dossier /home/user/VEnv +  /../../../projets/toto/$ python3 -m venv mon_env
-===1ère solution===+
  
-  source ~/VEnv/bin/activate+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
  
-équivalent à+===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
  
-  source /home/user/VEnv/bin/activate+<code> 
 +  Package       Version 
 +------------- ------- 
 +Pillow        7.1.1   
 +pip           18.1    
 +pkg-resources 0.0.0   
 +setuptools    40.8.0 
 +</code> 
 + 
 +===Installation de tous les paquets requis=== 
 +  python3 -m pip install -r requirements.txt 
 +==== 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
      
-Le prompt devient:+====Lancement d'un script==== 
 +  python3 mon_script.py 
 +   
 +=====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
  
-  (VEnv) user@PC01:~$ +  sudo apt update 
 +  sudo apt install software-properties-common 
 +  sudo add-apt-repository ppa:deadsnakes/ppa 
 +  sudo apt install python3.8
  
-Installation des modules appelés par votre projet: 
-  pip3 install twisted librosa bs4 
-Puisque l'installation se fait dans le home, pas besoin d'être root, pas de sudo. 
-   
-===2ème solution=== 
-Utiliser l’interpréteur installé dans le « virtualenv » : 
-    * ~/VEnv/bin/python3` (qui peut être utilisé comme shebang aussi bien sur) 
  
-===Ensuite=== +<code bash> 
-  cd /vers/votre/projet +cd /mes/projets/keras-jordan-bird
-  nohup python3 main.py & +python3.8 -m venv mon_env 
-   +sudo apt install python3.8-venv python3.8-dev 
-Le script main.py continuera a tourner dans l'environnement virtuel, même si la console est fermée.+python3.8 -m venv mon_env 
 +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]]**
  
-===== Requirements.txt ===== +Ne faites pas: 
-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 pip install black  
 +  black mon_fichier.py 
 +Mais faites: 
 +  python3.7 -m pip install black --user  
 +  python3.7 -m black mon_fichier.py
  
-=== Génération du fichier requirements.txt === +Notez le --user, ainsi que les deux usages de -m.\\ 
-Pour générer le fichier requirements.txt +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) 
-  pip freeze > requirements.txt+=====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=====
  
-=== Installation des modules indiqués dans requirements.txt === +====Installer un package==== 
-<file txt requirements.txt> +Le package est installé dans le home du user:
-twisted +
-service_identity +
-google-auth-oauthlib +
-</file>+
  
-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.txt · Dernière modification : 2022/05/06 15:49 de serge