virtualenv
Différences
Ci-dessous, les différences entre deux révisions de la page.
Les deux révisions précédentesRévision précédenteProchaine révision | Révision précédenteProchaine révisionLes deux révisions suivantes | ||
virtualenv [2020/03/26 13:00] – [Ressources] serge | virtualenv [2021/05/05 14:22] – [Résumé à apprendre par cœur] serge | ||
---|---|---|---|
Ligne 1: | Ligne 1: | ||
====== Python: Virtualenv ====== | ====== Python: Virtualenv ====== | ||
- | |||
- | <WRAP center round info centeralign 60%> | ||
- | **Niveau Pro** | ||
- | </ | ||
<WRAP center round box 60% centeralign> | <WRAP center round box 60% centeralign> | ||
- | Voir aussi: | + | **[[toutes_les_pages_sur_python|Toutes les pages sur Python]] sans les pages sur {{tagpage> |
+ | **[[http:// | ||
</ | </ | ||
- | =====Virtualenv===== | + | * **[[https://docs.python.org/fr/3/tutorial/index.html|Le tutoriel Python]]** de la fondation Python fr. |
- | Extrait de [[https://www.delahayeyourself.info/modules/LP%20Web%20Dynamique/python/ | + | |
- | **virtualenv** est un outil pour créer un environnement Python isolé. | + | ===== Résumé à apprendre par cœur ===== |
- | Le problème | + | <code bash> |
+ | # Installation | ||
+ | sudo apt install python3.8-venv | ||
- | Ou plus généralement, | + | <code bash> |
+ | cd / | ||
+ | |||
+ | # Création du dossier environnement si pas encore créé | ||
+ | python3 -m venv mon_env | ||
- | De plus, que faire si vous ne pouvez pas installer les packages dans le répertoire global de sites-packages? | + | # Activation |
+ | source mon_env/ | ||
+ | # le prompt devient (mon_env) machin@127:/ | ||
- | Dans tous ces cas, **virtualenv** peut vous aider. Il crée un environnement qui possède ses propres répertoires d’installation, | + | # Installation des package |
+ | python3 -m pip install wheel # bug debian ubuntu | ||
+ | python3 -m pip install -r requirements.txt | ||
- | ====Ressources==== | + | # Installation d'un package supplémentaire |
- | * **[[https:// | + | python3 -m pip install Pillow==7.1.1 |
- | =====Comment créer un virtualenv ?===== | + | # Création ou recréation de |
- | Voici la marche à suivre pour créer | + | pip freeze > requirements.txt |
+ | |||
+ | # Liste de tous les paquets dans le virtualenv | ||
+ | pip list | ||
- | ====Installation==== | + | # Exécution d'un script |
- | sudo apt-get install | + | # sans lancer source mon_env/ |
+ | python3.7 -m mon_fichier.py | ||
- | ====Utilisation==== | + | # Dans Geany, commande de construction |
+ | mon_env/ | ||
+ | </ | ||
+ | |||
+ | ====Pour une relance==== | ||
+ | cd / | ||
+ | source mon_env/ | ||
+ | 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ée un dossier | + | |
- | ===1ère solution=== | + | |
- | source ~/VEnv/bin/activate | + | ====Création d' |
+ | https://docs.python.org/fr/ | ||
- | équivalent à | + | Création d'un dossier tutorial-env dans le dossier de votre projet toto: / |
+ | / | ||
- | | + | Activation de l' |
- | + | | |
- | Le prompt devient: | + | le prompt devient |
+ | pour voir où vous êtes et tester | ||
+ | ls | ||
+ | python3 | ||
+ | import sys | ||
+ | Ctrl + D pour quitter | ||
- | (VEnv) user@PC01:~$ | + | ===Installation d'un paquet dans cet environnement=== |
+ | python3 -m pip install Pillow==7.1.1 | ||
+ | Successfully installed Pillow-7.1.1, | ||
+ | pip show Pillow | ||
+ | pip list liste tous les paquets installés dans l' | ||
+ | pip list | ||
- | Installation des modules appelés par votre projet: | + | < |
- | | + | |
- | Puisque l' | + | ------------- ------- |
- | + | Pillow | |
- | ===2ème solution=== | + | pip |
- | Utiliser l’interpréteur installé dans le « virtualenv » : | + | pkg-resources 0.0.0 |
- | | + | setuptools |
+ | </code> | ||
- | ===Ensuite=== | + | ===Installation de tous les paquets requis=== |
- | | + | |
- | | + | ==== Génération du fichier requirements.txt ==== |
+ | Pour faciliter la distribution 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 | ||
| | ||
- | Le script main.py continuera a tourner dans l'environnement virtuel, même si la console est fermée. | + | =====Création d'un venv avec une autre version de pythotn===== |
+ | Installation de python 3.8 sur Xubuntu 18.04 | ||
+ | * https:// | ||
- | ===== Requirements.txt ===== | + | sudo apt update |
- | 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. | + | sudo apt install software-properties-common |
+ | sudo add-apt-repository ppa: | ||
+ | sudo apt install python3.8 | ||
- | === 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 === | + | <code bash> |
- | <file txt requirements.txt> | + | cd / |
- | twisted | + | python3.8 -m venv mon_env |
- | service_identity | + | sudo apt install python3.8-venv python3.8-dev |
- | google-auth-oauthlib | + | python3.8 -m venv mon_env |
- | </file> | + | source mon_env/ |
+ | python3.8 -m pip install -r requirements.txt | ||
+ | </ | ||
+ | =====Lancer correctement python===== | ||
+ | * **[[https:// | ||
+ | |||
+ | Ne faites pas: | ||
+ | sudo pip install black | ||
+ | black mon_fichier.py | ||
+ | Mais faites: | ||
+ | python3.7 -m pip install black --user | ||
+ | | ||
+ | |||
+ | 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===== | ||
+ | * **[[https:// | ||
+ | Dans " | ||
+ | mon_env/ | ||
+ | {{: | ||
+ | {{: | ||
+ | =====Installation d'un package avec pip===== | ||
+ | |||
+ | ====Installer un package==== | ||
+ | Le package est installé dans le home du user: | ||
- | Dans un terminal, dans le dossier de requirements.txt, installation dans le système: | + | python3.7 -m pip install |
- | pip3 install -r requirements.txt | + | |
- | + | ||
- | ===Exemple=== | + | |
- | Ouvrir un terminal dans le dossier de votre projet: | + | |
- | python3 | + | |
- | source ~/ | + | |
- | pip3 install -r requirements.txt | + | |
- | python3 mon_script.py | + | |
| | ||
+ | Pour lancer un script: | ||
- | ===Ressources=== | + | python3.7 -m mon_fichier.py |
- | * [[https:// | + | |
- | * [[https:// | + | |
- | * [[https:// | + | |
- | | + | ====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 '/ | ||
+ | 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=" | ||
+ | |||
+ | {{tag> |
virtualenv.txt · Dernière modification : 2022/05/06 15:49 de serge