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/26 16:53] – [Création de requirements.txt] sergevirtualenv [2022/05/06 15:49] (Version actuelle) – [Pense bêtes] serge
Ligne 6: Ligne 6:
 </WRAP> </WRAP>
  
-  * **[[https://docs.python.org/fr/3/tutorial/index.html|Le tutoriel Python]]** de la fondation Python fr. +=====Pense bêtes===== 
-=====Environnements virtuels en python===== +<code bash> 
-Un tuto avec du python2.7 en 2020, cela ne ferait pas sérieux! +# Installation initiale 
- +sudo apt install python3-pip python3-venv 
-  * **[[https://docs.python.org/fr/3/tutorial/venv.html|Environnements virtuels et paquets]]** sur la Doc officielle docs.python.org +python3 -m pip install --upgrade pip
- +
-====Création d'environnements virtuels==== +
-https://docs.python.org/fr/3/tutorial/venv.html#creating-virtual-environments+
  
-Création d'un dossier tutorial-env dans le dossier de votre projet toto: /../../../projets/toto/ +# Dans le dossier du projet 
-  /../../../projets/toto/$ python3 -m venv tutorial-env+python3 -m venv mon_env 
 +source mon_env/bin/activate 
 +python3 -m pip install -r requirements.txt 
 +python3 -m pip install Pillow==7.1.
 +pip freeze > all_requirements.txt 
 +</code>
  
-Activation de l'environnement: +=====Version de python===== 
-  source tutorial-env/bin/activate +Si vous avez plusieurs versions de python, vous devez remplacer  
-le prompt devient +  python3 
-  (tutorial-env) serge@127:/../../../projets/toto/ +
-pour voir où vous êtes +
-  ls+
      
 +par
 +  python3.x
      
 +ou x = 6 ou 7 ou 8 ou 9 ou 10 ou 11 ...
      
      
-=====Lancer correctement python===== +=====Ressources===== 
-  * **[[https://sametmax.com/lancer-correctement-python-et-ses-commandes-cousines/|Lancer correctement python et ses commandes cousines]]**+  * **[[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
  
 +===== 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.\\ 
-=====Ce qu'il faut retenir par cœur=====+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.
  
-====Installer un package==== +Si besoin, ajouter à ~.bashrc 
-Le package est installé dans le home du user:+<code bash>export PYTHONPATH="${PYTHONPATH}:~/.local"</code>
  
-  python3.-m pip install black --user  +====Liste des package installés localement==== 
-   +Donc sans les packages du système et les packages installés dans le système. 
-Pour lancer un script:+  python3 -m pip list --user 
 +===== Environnement Virtuel =====
  
-  python3.7 -m mon_fichier.py+==== 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
  
-====Mettre à jour pip==== +==== Initialisation ==== 
-   +<code bash> 
-  python3.7 -m pip install --upgrade pip +cd /le/dossier/de/votre/projet/truc/ 
-   +# Création du dossier environnement si pas encore créé 
-Si vous avez cette alerte: +python3 -m venv mon_env 
-  WARNINGThe scripts pip, pip3 and pip3.7 are installed in '/home/toto/.local/bin' which is not on PATH+# Activation  
-  Consider adding this directory to PATH or, if you prefer to suppress this warning, use --no-warn-script-location+source mon_env/bin/activate 
-   +# le prompt devient (mon_env) machin@127:/../../../projets/truc/ 
-Ajouter au fichier ~/.bashrc+# 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>
  
-  # Pour pip, pip3 and pip3.7 +====Arguments spécifiques====
-  export PYTHONPATH="${PYTHONPATH}:/home/toto/.local/bin" +
-  +
  
 +===Installation avec les sources dans un dossier===
 +<code bash>python3 -m pip install --no-index --find-links=/media/data/exclude/clones/mediapipe mediapipe</code>
  
 +===Avec accès aux package système===
 +  * https://pip.pypa.io/en/stable/user_guide/
  
 +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>
 +  
 +--no-site-packages est la valeur par défaut
  
-===== Génération du fichier requirements.txt ===== +===Depuis un Git=== 
-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.+<code bash>python3 -m pip install -e git+https://git.repo/some_pkg.git#egg=SomeProject</code>
  
-  pip freeze requirements.txt+====Exécution d'un script de votre projet==== 
 +<code bash> 
 +cd /le/dossier/de/votre/projet/truc/ 
 +./mon_env/bin/python3 ./sous_dossier/main.py 
 +# Dans Geany, commande de construction 
 +../mon_env/bin/python3 "%f" 
 +</code>
  
 +==== Relance pour installer de nouveaux package ====
 +<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 ====
 +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.
 +<code bash>pip freeze > requirements.txt</code>  
  
 +  
 +=====Création d'un venv avec une autre version de python=====
 +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
 +<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>
  
- {{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.1614358390.txt.gz · Dernière modification : 2021/02/26 16:53 de serge