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 12:56] – [Virtualenv] serge | virtualenv [2021/02/28 11:14] – [Lancer correctement python] serge | ||
---|---|---|---|
Ligne 1: | Ligne 1: | ||
====== Python: Virtualenv ====== | ====== Python: Virtualenv ====== | ||
- | <WRAP center round info centeralign 30%> | + | <WRAP center round box 60% centeralign> |
- | **Niveau Pro** | + | **[[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 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, | + | <code bash> |
+ | cd / | ||
+ | |||
+ | # Création du dossier environnement si pas encore créé | ||
+ | python3 -m venv mon_env | ||
- | Ou plus généralement, | + | # Activation |
+ | source mon_env/ | ||
+ | # le prompt devient (mon_env) machin@127:/ | ||
- | De plus, que faire si vous ne pouvez pas installer les packages dans le répertoire global | + | # Installation des package |
+ | python3 -m pip install wheel # bug de ma debian 10 | ||
+ | python3 -m pip install | ||
- | Dans tous ces cas, **virtualenv** peut vous aider. Il crée un environnement qui possède ses propres répertoires d’installation, | + | # Installation d'un package supplémentaire |
+ | python3 -m pip install Pillow==7.1.1 | ||
- | ====Ressources==== | + | # Création ou recréation de |
- | * **[[https:// | + | pip freeze > requirements.txt |
+ | |||
+ | # Liste de tous les paquets dans le virtualenv | ||
+ | pip list | ||
- | =====Comment créer | + | # Exécution d'un script |
- | Voici la marche à suivre pour créer le « virtualenv ». | + | python3.7 -m mon_fichier.py |
- | ====Installation==== | + | # Dans Geany, commande de construction |
- | | + | mon_env/ |
+ | </ | ||
+ | |||
+ | ====Pour une relance==== | ||
+ | | ||
+ | source mon_env/ | ||
+ | | ||
+ | =====Environnements virtuels en python===== | ||
+ | Un tuto avec du python2.7 en 2020, cela ne ferait pas sérieux! | ||
- | ====Utilisation==== | + | * **[[https:// |
- | python3 -m venv ~/VEnv | + | ====Création d' |
- | crée un dossier / | + | https:// |
- | ===1ère solution=== | + | |
- | source ~/VEnv/bin/activate | + | Création d'un dossier tutorial-env dans le dossier de votre projet toto: /../../../ |
+ | / | ||
- | équivalent à | + | Activation de l' |
+ | source mon_env/ | ||
+ | le prompt devient (tutorial-env) mon_env@127:/ | ||
+ | pour voir où vous êtes et tester | ||
+ | ls | ||
+ | python3 | ||
+ | import sys | ||
+ | Ctrl + D pour quitter | ||
- | source / | + | ===Installation d'un paquet dans cet environnement=== |
- | + | | |
- | Le prompt devient: | + | Successfully installed Pillow-7.1.1, |
+ | pip show Pillow | ||
+ | pip list liste tous les paquets installés dans l' | ||
+ | pip list | ||
- | | + | < |
+ | Package | ||
+ | ------------- ------- | ||
+ | Pillow | ||
+ | pip | ||
+ | pkg-resources 0.0.0 | ||
+ | setuptools | ||
+ | </ | ||
- | Installation | + | ===Installation |
- | | + | |
- | Puisque l' | + | ==== 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 | ||
| | ||
- | ===2ème solution=== | + | ====Lancement d'un script==== |
- | Utiliser l’interpréteur installé dans le « virtualenv » : | + | |
- | * ~/VEnv/bin/python3` (qui peut être utilisé comme shebang aussi bien sur) | + | =====Lancer correctement python===== |
+ | | ||
- | ===Ensuite=== | + | Ne faites pas: |
- | | + | |
- | | + | |
- | + | Mais faites: | |
- | Le script main.py continuera a tourner dans l' | + | python3.7 -m pip install black --user |
+ | | ||
- | ===== Requirements.txt | + | Notez le --user, ainsi que les deux usages de -m.\\ |
- | Pour faciliter la distribution de votre projet dans son virtualenv, il est recommandé de produire un fichier requirements.txt qui listera toutes | + | 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===== | ||
- | === Génération du fichier requirements.txt | + | ====Installer un package==== |
- | Pour générer | + | Le package est installé dans le home du user: |
- | pip freeze > requirements.txt | + | |
- | === Installation des modules indiqués dans requirements.txt === | + | python3.7 -m pip install black --user |
- | <file txt requirements.txt> | + | |
- | twisted | + | Pour lancer un script: |
- | service_identity | + | |
- | google-auth-oauthlib | + | |
- | </ | + | |
- | Dans un terminal, dans le dossier de requirements.txt, installation dans le système: | + | python3.7 -m mon_fichier.py |
- | pip3 install | + | |
+ | ====Mettre à jour pip==== | ||
| | ||
- | ===Exemple=== | + | |
- | Ouvrir un terminal dans le dossier de votre projet: | + | |
- | | + | |
- | source ~/ | + | |
- | pip3 install -r requirements.txt | + | |
- | python3 mon_script.py | + | |
| | ||
+ | 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 | ||
- | ===Ressources=== | + | # Pour pip, pip3 and pip3.7 |
- | | + | |
- | * [[https:// | + | |
- | | + | {{tag> |
- | + | ||
- | | + |
virtualenv.txt · Dernière modification : 2022/05/06 15:49 de serge