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

Prochaine révision
Révision précédente
virtualenv [2018/08/12 12:58] – créée sergevirtualenv [2022/05/06 15:49] (Version actuelle) – [Pense bêtes] serge
Ligne 1: Ligne 1:
 ====== Python: Virtualenv ====== ====== Python: Virtualenv ======
  
 +<WRAP center round box 60% centeralign>
 +**[[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>
 +
 +=====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/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.\\
 +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>
 +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>
 +
 +====Arguments spécifiques====
 +
 +===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
 +
 +===Depuis un Git===
 +<code bash>python3 -m pip install -e git+https://git.repo/some_pkg.git#egg=SomeProject</code>
 +
 +====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>
 +
 +=====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}} {{tag>python sb}}
virtualenv.1534078727.txt.gz · Dernière modification : 2018/08/12 12:58 de serge