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 [2021/02/27 09:48] – [Création d'environnements virtuels] sergevirtualenv [2022/05/06 15:49] (Version actuelle) – [Pense bêtes] serge
Ligne 6: Ligne 6:
 </WRAP> </WRAP>
  
 +=====Pense bêtes=====
 +<code bash>
 +# Installation initiale
 +sudo apt install python3-pip python3-venv
 +python3 -m pip install --upgrade pip
 +
 +# 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>
 +
 +=====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/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
  
-===== Résumé à apprendre par cœur =====+===== Installation d'un package sans environnement virtuel =====
  
 +<code bash>
 +python3 -m pip install psutil --user 
 +python3 -m mon_fichier.py
 +</code>
 +
 +Notez le –user, ainsi 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 path, personnellement python m'a toujours trouvé les packages de .local, sur debian et ubuntu.
 +
 +Si besoin, ajouter à ~.bashrc
 +<code bash>export PYTHONPATH="${PYTHONPATH}:~/.local"</code>
 +
 +====Liste des package installés localement====
 +Donc sans les packages du système et les packages installés dans le système.
 +  python3 -m pip list --user
 +===== Environnement Virtuel =====
 +
 +==== Installation de 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
 +
 +==== Initialisation ====
 <code bash> <code bash>
 cd /le/dossier/de/votre/projet/truc/ cd /le/dossier/de/votre/projet/truc/
-   
 # Création du dossier environnement si pas encore créé # Création du dossier environnement si pas encore créé
 python3 -m venv mon_env python3 -m venv mon_env
- 
 # Activation  # Activation 
-source tutorial-env/bin/activate+source mon_env/bin/activate
 # le prompt devient (mon_env) machin@127:/../../../projets/truc/ # le prompt devient (mon_env) machin@127:/../../../projets/truc/
- 
 # Installation des package # Installation des package
 python3 -m pip install -r requirements.txt python3 -m pip install -r requirements.txt
- 
 # Installation d'un package supplémentaire # Installation d'un package supplémentaire
 python3 -m pip install Pillow==7.1.1 python3 -m pip install Pillow==7.1.1
- +# Création ou re-création des requirements
-# Création ou recréation de +
 pip freeze > requirements.txt pip freeze > requirements.txt
-   
-# Liste de tous les paquets dans le virtualenv 
-pip list 
- 
-# Exécution d'un script 
-python3.7 -m mon_fichier.py 
- 
-# Dans Geany, commande de construction 
-mon_env/bin/python3 "%f" 
 </code> </code>
-   
-=====Environnements virtuels en python===== 
-Un tuto avec du python2.7 en 2020, cela ne ferait pas sérieux! 
  
-  * **[[https://docs.python.org/fr/3/tutorial/venv.html|Environnements virtuels et paquets]]** sur la Doc officielle docs.python.org+====Arguments spécifiques====
  
-====Création d'environnements virtuels==== +===Installation avec les sources dans un dossier=== 
-https://docs.python.org/fr/3/tutorial/venv.html#creating-virtual-environments+<code bash>python3 -m pip install --no-index --find-links=/media/data/exclude/clones/mediapipe mediapipe</code>
  
-Création d'un dossier tutorial-env dans le dossier de votre projet toto: /../../../projets/toto/ +===Avec accès aux package système=== 
-  /../../../projets/toto/$ python3 -m venv mon_env+  * https://pip.pypa.io/en/stable/user_guide/
  
-Activation de l'environnement+Permet à python du venv d'accéder au package système--system-site-packages  
-  source mon_env/bin/activate +<code bash>python3 -m pip install -r --system-site-packages requirements.txt</code> 
-le prompt devient (tutorial-env) mon_env@127:/../../../projets/toto/\\ +   
-pour voir où vous êtes et tester +--no-site-packages est la valeur par défaut
-  ls +
-  python3 +
-  import sys +
-Ctrl + D pour quitter+
  
-===Installation d'un paquet dans cet environnement=== +===Depuis un Git=== 
-  python3 -m pip install Pillow==7.1.1 +<code bash>python3 -m pip install -e git+https://git.repo/some_pkg.git#egg=SomeProject</code>
-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+
  
-<code> +====Exécution d'un script de votre projet==== 
-  Package       Version +<code bash
-------------- ------- +cd /le/dossier/de/votre/projet/truc/ 
-Pillow        7.1.1   +./mon_env/bin/python3 ./sous_dossier/main.py 
-pip           18.1    +# Dans Geany, commande de construction 
-pkg-resources 0.0.0   +../mon_env/bin/python3 "%f"
-setuptools    40.8.0+
 </code> </code>
  
-===Installation de tous les paquets requis=== +==== Relance pour installer de nouveaux package ===
-  python3 -m pip install -r requirements.txt+<code bash> 
 +cd /le/dossier/de/votre/projet/truc/ 
 +source mon_env/bin/activate 
 +python3 -m pip install some_package 
 +# Mise à jour des requirements 
 +pip freeze > requirements.txt 
 +</code>
 ==== Génération du fichier 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.\\+Pour faciliter la distribution de votre projet dans son virtualenv, il 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. C'est la liste de tous les paquets que vous avez installé pour votre projet.
-  pip freeze > requirements.txt+<code bash>pip freeze > requirements.txt</code>   
      
-====Lancement d'un script==== +=====Création d'un venv avec une autre version de python===== 
-  python3 mon_script.py +Installation de python 3.8 sur Xubuntu 18.04 
-=====Lancer correctement python===== +  * https://askubuntu.com/questions/1197683/how-do-i-install-python-3-8-in-lubuntu-18-04 
-  * **[[https://sametmax.com/lancer-correctement-python-et-ses-commandes-cousines/|Lancer correctement python et ses commandes cousines]]**+<code bash> 
 +sudo apt update 
 +sudo apt install software-properties-common 
 +sudo add-apt-repository ppa:deadsnakes/ppa 
 +sudo apt install python3.8 
 +</code> 
 +Création d'un venv 
 +<code bash> 
 +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>
  
 =====Travailler avec Geany et un Virtual Env===== =====Travailler avec Geany et un Virtual Env=====
   * **[[https://stackoverflow.com/questions/42013705/using-geany-with-python-virtual-environment|Using geany with python virtual environment]]**   * **[[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": Dans "Construire" / "Définir les commandes de construction":
-  mon_env/bin/python3 "%f"+  ../mon_env/bin/python3 "%f"
 {{:media_14:geany_construire.png?200|}} {{:media_14:geany_construire.png?200|}}
 {{:media_14:construire_execute.png?400|}} {{: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: 
- 
-  python3.7 -m mon_fichier.py 
- 
-====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}} {{tag>python sb}}
virtualenv.1614419301.txt.gz · Dernière modification : 2021/02/27 09:48 de serge