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
virtualenv [2020/03/26 12:55] – [Virtualenv] sergevirtualenv [2022/05/06 15:49] (Version actuelle) – [Pense bêtes] serge
Ligne 1: Ligne 1:
 ====== Python: Virtualenv ====== ====== Python: Virtualenv ======
  
-<WRAP center round info centeralign 30%> +<WRAP center round box 60centeralign
-**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>
  
-=====Virtualenv===== +=====Pense bêtes===== 
-Extrait de [[https://www.delahayeyourself.info/modules/LP%20Web%20Dynamique/python/tp3_pip_virtualenv/|delahayeyourself.inf]]:+<code bash> 
 +# Installation initiale 
 +sudo apt install python3-pip python3-venv 
 +python3 -m pip install --upgrade pip
  
-**virtualenv** est un outil pour créer un environnement Python isolé.+# Dans le dossier du projet 
 +python3 -m venv mon_env 
 +source mon_env/bin/activate 
 +python3 -m pip install -r requirements.txt 
 +python3 -m pip install Pillow==7.1.1 
 +pip freeze > all_requirements.txt 
 +</code>
  
-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 LibFoomais 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.+=====Version de python===== 
 +Si vous avez plusieurs versions de python, vous devez remplacer  
 +  python3  
 +   
 +par 
 +  python3.x 
 +   
 +ou x = 6 ou 7 ou 8 ou 9 ou 10 ou 11 ... 
 +   
 +   
 +=====Ressources===== 
 +  * **[[https://docs.python.org/fr/3/tutorial/index.html|Le tutoriel Python]]** de la fondation Python fr. 
 +  * **[[https://docs.python.org/fr/3/tutorial/venv.html|Environnements virtuels et paquets]]** sur la Doc officielle docs.python.org
  
-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 d'un package sans environnement virtuel =====
  
-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 (miskin ou rybn) dont vous n'avez pas les droits ?+<code bash> 
 +python3 -m pip install psutil --user  
 +python3 -m mon_fichier.py 
 +</code>
  
-Dans tous ces cas**virtualenv** peut vous aider. Il crée un environnement qui possède ses propres répertoires d’installationqui 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).+Notez le –userainsi que les -m.\\ 
 +Ceci va installer psutil dans ~.local, pas au niveau du système. L'option -m exécute pip en tant que module. Il y a un warning sur le python pathpersonnellement python m'a toujours trouvé les packages de .local, sur debian et ubuntu.
  
-====Ressources==== +Si besoin, ajouter à ~.bashrc 
-  * **[[https://deusyss.developpez.com/tutoriels/Python/Virtualenvs/|Virtualenvs de GALODE Alexandre sur developpez.com]]**+<code bash>export PYTHONPATH="${PYTHONPATH}:~/.local"</code>
  
-=====Comment créer un virtualenv ?===== +====Liste des package installés localement==== 
-Voici la marche à suivre pour créer le « virtualenv ».+Donc sans les packages du système et les packages installés dans le système. 
 +  python3 -m pip list --user 
 +===== Environnement Virtuel =====
  
-====Installation==== +==== Installation de venv ==== 
-  sudo apt-get install python3-venv+<code bash> 
 +# Mise à jour de pip 
 +python3 -m pip install --upgrade pip 
 +# Installation de venv 
 +sudo apt install python3-venv 
 +</code> 
 +=====Ressources===== 
 +  * **https://packaging.python.org/** la doc officielle
  
-====Utilisation====+==== Initialisation ==== 
 +<code bash> 
 +cd /le/dossier/de/votre/projet/truc/ 
 +# Création du dossier environnement si pas encore créé 
 +python3 -m venv mon_env 
 +# Activation  
 +source mon_env/bin/activate 
 +# le prompt devient (mon_env) machin@127:/../../../projets/truc/ 
 +# Installation des package 
 +python3 -m pip install -r requirements.txt 
 +# Installation d'un package supplémentaire 
 +python3 -m pip install Pillow==7.1.1 
 +# Création ou re-création des requirements 
 +pip freeze > requirements.txt 
 +</code>
  
-  python3 -m venv ~/VEnv +====Arguments spécifiques====
-crée un dossier /home/user/VEnv +
-===1ère solution===+
  
-  source ~/VEnv/bin/activate+===Installation avec les sources dans un dossier=== 
 +<code bash>python3 -m pip install --no-index --find-links=/media/data/exclude/clones/mediapipe mediapipe</code>
  
-équivalent à+===Avec accès aux package système=== 
 +  * https://pip.pypa.io/en/stable/user_guide/
  
-  source /home/user/VEnv/bin/activate+Permet à python du venv d'accéder au package système: --system-site-packages  
 +<code bash>python3 -m pip install -r --system-site-packages requirements.txt</code>
      
-Le prompt devient:+--no-site-packages est la valeur par défaut
  
-  (VEnv) user@PC01:~$ +===Depuis un Git=== 
 +<code bash>python3 -m pip install -e git+https://git.repo/some_pkg.git#egg=SomeProject</code>
  
-Installation des modules appelés par votre projet: +====Exécution d'un script de votre projet==== 
-  pip3 install twisted librosa bs4 +<code bash> 
-Puisque l'installation se fait dans le home, pas besoin d'être root, pas de sudo. +cd /le/dossier/de/votre/projet/truc/ 
-   +./mon_env/bin/python3 ./sous_dossier/main.py 
-===2ème solution=== +# Dans Geany, commande de construction 
-Utiliser l’interpréteur installé dans le « virtualenv » : +../mon_env/bin/python3 "%f" 
-    * ~/VEnv/bin/python3` (qui peut être utilisé comme shebang aussi bien sur)+</code>
  
-===Ensuite=== +==== Relance pour installer de nouveaux package ==== 
-  cd /vers/votre/projet +<code bash> 
-  nohup python3 main.py & +cd /le/dossier/de/votre/projet/truc/ 
-   +source mon_env/bin/activate 
-Le script main.py continuera a tourner dans l'environnement virtuelmême si la console est fermée.+python3 -m pip install some_package 
 +# Mise à jour des requirements 
 +pip freeze > requirements.txt 
 +</code> 
 +==== 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 dépendances de votre projet.\\ 
 +C'est la liste de tous les paquets que vous avez installé pour votre projet. 
 +<code bash>pip freeze > requirements.txt</code>  
  
-===== 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. 
- 
-=== 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 === 
-<file txt requirements.txt> 
-twisted 
-service_identity 
-google-auth-oauthlib 
-</file> 
- 
-Dans un terminal, dans le dossier de requirements.txt, installation dans le système: 
-  pip3 install -r requirements.txt 
      
-===Exemple===   +=====Création d'un venv avec une autre version de python===== 
-Ouvrir un terminal dans le dossier de votre projet:   +Installation de python 3.8 sur Xubuntu 18.04 
-  python3 -m venv ~/VEnv +  * https://askubuntu.com/questions/1197683/how-do-i-install-python-3-8-in-lubuntu-18-04 
-  source ~/VEnv/bin/activate +<code bash> 
-  pip3 install -r requirements.txt +sudo apt update 
-  python3 mon_script.py +sudo apt install software-properties-common 
-   +sudo add-apt-repository ppa:deadsnakes/ppa 
- +sudo apt install python3.
-===Ressources=== +</code> 
-  * [[https://deusyss.developpez.com/tutoriels/Python/Virtualenvs/#LVI-D| Copie et déploiement de virtualenv]] +Création d'un venv 
-  * [[https://deusyss.developpez.com/tutoriels/Python/packaging_pypi/#LIII-D|Installer un groupe de paquets grâce à un fichier requirement]] +<code bash> 
-  * [[https://deusyss.developpez.com/tutoriels/Python/packaging_pypi/#LIII-A|Le format requirement]]+cd /mes/projets/keras-jordan-bird/ 
 +python3.8 -m venv mon_env 
 +sudo apt install python3.8-venv python3.8-dev 
 +python3.8 -m venv mon_env 
 +source mon_env/bin/activate 
 +python3.8 -m pip install -r requirements.txt 
 +</code>
  
- {{tag>python sb}}+=====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|}} 
 +{{tag>python sb}}
virtualenv.1585227348.txt.gz · Dernière modification : 2020/03/26 12:55 de serge