Outils pour utilisateurs

Outils du site


virtualenv

Python: Virtualenv

Résumé à apprendre par cœur

# Installation de venv pour 3.8
sudo apt install python3.8-venv
 
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 wheel  # bug debian ubuntu
python3 -m pip install -r requirements.txt
 
# Installation d'un package supplémentaire
python3 -m pip install Pillow==7.1.1
 
# Création ou recréation de 
pip freeze > requirements.txt
 
# Liste de tous les paquets dans le virtualenv
pip list
 
# Exécution d'un script
# sans lancer source mon_env/bin/activate avant
python3.7 -m mon_fichier.py
 
# Dans Geany, commande de construction
mon_env/bin/python3 "%f"

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!

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/

/../../../projets/toto/$ python3 -m venv mon_env

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

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
  Package       Version
------------- -------
Pillow        7.1.1  
pip           18.1   
pkg-resources 0.0.0  
setuptools    40.8.0

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

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

sudo apt update
sudo apt install software-properties-common
sudo add-apt-repository ppa:deadsnakes/ppa
sudo apt install python3.8
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

Lancer correctement python

Ne faites pas:

sudo pip install black 
black mon_fichier.py

Mais faites:

python3.7 -m pip install black --user 
python3.7 -m black mon_fichier.py

Notez le –user, ainsi que les deux usages de -m.
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)

Travailler avec Geany et un Virtual Env

Dans “Construire” / “Définir les commandes de construction”:

mon_env/bin/python3 "%f"

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"
virtualenv.txt · Dernière modification: 2021/05/05 16:22 de serge