Table des matières
Python: Virtualenv
Pense bêtes
# 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
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
Installation d'un package sans environnement virtuel
python3 -m pip install psutil --user python3 -m mon_fichier.py
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
export PYTHONPATH="${PYTHONPATH}:~/.local"
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
# Mise à jour de pip python3 -m pip install --upgrade pip # Installation de venv sudo apt install python3-venv
Ressources
- https://packaging.python.org/ la doc officielle
Initialisation
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
Arguments spécifiques
Installation avec les sources dans un dossier
python3 -m pip install --no-index --find-links=/media/data/exclude/clones/mediapipe mediapipe
Avec accès aux package système
Permet à python du venv d'accéder au package système: –system-site-packages
python3 -m pip install -r --system-site-packages requirements.txt
–no-site-packages est la valeur par défaut
Depuis un Git
python3 -m pip install -e git+https://git.repo/some_pkg.git#egg=SomeProject
Exécution d'un script de votre projet
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"
Relance pour installer de nouveaux package
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
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.
pip freeze > requirements.txt
Création d'un venv avec une autre version de python
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
Création d'un venv
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