Outils pour utilisateurs

Outils du site


virtualenv

Ceci est une ancienne révision du document !


Python: Virtualenv

On recommence tout

Un tuto avec du python2.7 en 2020, cela ne ferait pas sérieux!

https://docs.python.org/fr/3/tutorial/venv.html

Lancer correctement python

Niveau Pro

Voir aussi: Virtualenv

Sam et Max c'est fini, mais le site est toujours une mine de bon sens.

L'avant dernier post: Lancer correctement python et ses commandes cousines ne déroge pas à la règle.

Le bon sens

Descartes: Discours de la Méthode:

“Le bon sens est la chose la mieux partagée car chacun pense en être si bien pourvu, que même ceux qui sont les plus difficiles à contenter en toute autre chose, n'ont point coutume d'en désirer plus qu'ils en ont.”

Petit extrait de aline-louangvannasy.org:

Descartes observe que généralement nous ne mettons pas en question nos propres opinions lorsque nous affirmons quelque chose dans une conversation. Nous considérons tous que nous “avons” raison et même suffisamment de raison (avoir est synonyme ici de posséder). C’est ainsi qu'il ne viendrait à l'esprit de personne de demander plus de “bon sens” ou de raison.

Ressources

Ce qu'il faut retenir par cœur

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

Virtualenv

Extrait de delahayeyourself.inf:

virtualenv est un outil pour créer un environnement Python isolé.

Le problème de base à résoudre est celui des dépendances et des versions et des autorisations indirectes. Imaginez que vous ayez une application qui nécessite la version 1 de LibFoo, mais une autre application nécessite la version 2. Comment pouvez-vous utiliser ces deux applications ? Si vous installez tout dans /usr/lib/python2.7/site-packages, il est facile de vous retrouver dans une situation où vous mettez involontairement à niveau une application qui ne devrait pas être mise à niveau.

Ou plus généralement, que faire si vous souhaitez installer une application et la laisser en place ? Si une application fonctionne, toute modification apportée à ses bibliothèques ou aux versions de ces bibliothèques peut briser l'application.

De plus, que faire si vous ne pouvez pas installer les packages dans le répertoire global de sites-packages? Par exemple, par exemple sur un hôte distant dont vous n'avez pas les droits ?

Dans tous ces cas, virtualenv peut vous aider. Il crée un environnement qui possède ses propres répertoires d’installation, qui ne partage pas les bibliothèques avec d’autres environnements virtualenv (et qui n’a pas accès aux bibliothèques installées dans le système).

Ressources

Comment créer un virtualenv ?

Voici la marche à suivre pour créer le « virtualenv ».

Installation

sudo apt-get install python3-venv

Utilisation

python3 -m venv ~/VEnv

crée un dossier /home/user/VEnv

1ère solution

source ~/VEnv/bin/activate

équivalent à

source /home/user/VEnv/bin/activate

Le prompt devient:

(VEnv) user@PC01:~$ 

Installation des modules appelés par votre projet:

pip3 install twisted librosa bs4

Puisque l'installation se fait dans le home, pas besoin d'être root, pas de sudo.

2ème solution

Utiliser l’interpréteur installé dans le « virtualenv » :

  • ~/VEnv/bin/python3` (qui peut être utilisé comme shebang aussi bien sur)

Ensuite

cd /vers/votre/projet
nohup python3 main.py &

Le script main.py continuera a tourner dans l'environnement virtuel, même si la console est fermée.

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.

Génération du fichier requirements.txt

Pour générer le fichier requirements.txt :

pip freeze > requirements.txt

Installation des modules indiqués dans requirements.txt

requirements.txt
twisted
service_identity
google-auth-oauthlib

Dans un terminal, dans le dossier de requirements.txt, installation dans le système:

pip3 install -r requirements.txt

Exemple

Ouvrir un terminal dans le dossier de votre projet:

python3 -m venv ~/VEnv
source ~/VEnv/bin/activate
python3 -m pip install -r requirements.txt
python3 mon_script.py
virtualenv.1614357477.txt.gz · Dernière modification : 2021/02/26 16:37 de serge