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édente | ||
virtualenv [2018/09/01 08:14] – [Virtualenv] serge | virtualenv [2022/05/06 15:49] (Version actuelle) – [Pense bêtes] 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:// | ||
</ | </ | ||
- | {{tag> | ||
- | =====Virtualenv===== | + | =====Pense bêtes===== |
+ | <code bash> | ||
+ | # Installation initiale | ||
+ | sudo apt install python3-pip python3-venv | ||
+ | python3 -m pip install --upgrade pip | ||
- | virtualenv est un outil pour créer un environnement Python isolé. | + | # Dans le dossier du projet |
+ | python3 -m venv mon_env | ||
+ | source mon_env/ | ||
+ | python3 -m pip install -r requirements.txt | ||
+ | python3 -m pip install Pillow==7.1.1 | ||
+ | pip freeze > all_requirements.txt | ||
+ | </ | ||
- | Le problème | + | =====Version |
+ | Si vous avez plusieurs versions | ||
+ | python3 | ||
+ | |||
+ | par | ||
+ | python3.x | ||
+ | |||
+ | ou x = 6 ou 7 ou 8 ou 9 ou 10 ou 11 ... | ||
+ | |||
+ | |||
+ | =====Ressources===== | ||
+ | * **[[https://docs.python.org/fr/ | ||
+ | * **[[https:// | ||
- | Ou plus généralement, | + | ===== Installation d'un package sans environnement virtuel ===== |
- | De plus, que faire si vous ne pouvez pas installer les packages dans le répertoire global de sites-packages? Par exemple, sur un hôte partagé. | + | <code bash> |
+ | python3 | ||
+ | python3 -m mon_fichier.py | ||
+ | </ | ||
- | 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 à l’échelle mondiale). | + | Notez le –user, ainsi que les -m.\\ |
+ | Ceci va installer psutil dans ~.local, pas au niveau du système. L' | ||
- | The basic problem being addressed is one of dependencies and versions, and indirectly permissions. Imagine you have an application that needs version 1 of LibFoo, but another application requires version 2. How can you use both these applications? | + | Si besoin, ajouter à ~.bashrc |
+ | <code bash> | ||
- | Or more generally, what if you want to install an application and leave it be? If an application works, any change in its libraries or the versions of those libraries can break the application. | + | ====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 ===== | ||
- | Also, what if you can’t | + | ==== Installation de venv ==== |
+ | <code bash> | ||
+ | # Mise à jour de pip | ||
+ | python3 -m pip install --upgrade pip | ||
+ | # Installation de venv | ||
+ | sudo apt install python3-venv | ||
+ | </ | ||
+ | =====Ressources===== | ||
+ | * **https:// | ||
- | In all these cases, virtualenv can help you. It creates an environment that has its own installation directories, | + | ==== Initialisation ==== |
+ | <code bash> | ||
+ | cd / | ||
+ | # Création du dossier environnement si pas encore créé | ||
+ | python3 -m venv mon_env | ||
+ | # Activation | ||
+ | source mon_env/ | ||
+ | # le prompt devient | ||
+ | # 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 | ||
+ | </ | ||
- | ====Ressources==== | + | ====Arguments spécifiques==== |
- | * [[https:// | + | |
- | =====Comment créer | + | ===Installation avec les sources dans un dossier=== |
- | Voici la marche à suivre pour créer le « virtualenv ». | + | <code bash>python3 -m pip install |
- | ====Installation==== | + | |
- | Installe | + | |
- | sudo apt-get install python3-venv | + | |
- | Crée un dossier / | + | ===Avec accès aux package système=== |
- | ====Utilisation==== | + | * https:// |
- | | + | Permet à python du venv d' |
+ | <code bash>python3 -m pip install -r --system-site-packages requirements.txt< | ||
| | ||
- | ===1ère solution=== | + | --no-site-packages est la valeur par défaut |
- | source ~/VEnv/bin/activate | + | ===Depuis un Git=== |
+ | <code bash> | ||
- | équivalent | + | ====Exécution d'un script de votre projet==== |
+ | <code bash> | ||
+ | cd / | ||
+ | ./ | ||
+ | # Dans Geany, commande de construction | ||
+ | ../ | ||
+ | </ | ||
+ | |||
+ | ==== Relance pour installer de nouveaux package ==== | ||
+ | <code bash> | ||
+ | cd / | ||
+ | source mon_env/ | ||
+ | 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. | ||
+ | <code bash>pip freeze > requirements.txt</ | ||
- | source / | ||
| | ||
- | Le prompt devient: | + | =====Création d'un venv avec une autre version de python===== |
+ | Installation de python 3.8 sur Xubuntu 18.04 | ||
+ | * https:// | ||
+ | <code bash> | ||
+ | sudo apt update | ||
+ | sudo apt install software-properties-common | ||
+ | sudo add-apt-repository ppa: | ||
+ | sudo apt install python3.8 | ||
+ | </ | ||
+ | Création d'un venv | ||
+ | <code bash> | ||
+ | cd / | ||
+ | python3.8 -m venv mon_env | ||
+ | sudo apt install python3.8-venv python3.8-dev | ||
+ | python3.8 -m venv mon_env | ||
+ | source mon_env/ | ||
+ | python3.8 -m pip install -r requirements.txt | ||
+ | </ | ||
- | (VEnv) user@PC01: | + | =====Travailler avec Geany et un Virtual Env===== |
- | + | * **[[https:// | |
- | Installation des modules appelés par votre projet: | + | Dans " |
- | + | ../mon_env/bin/python3 " | |
- | pip3 install wheel | + | {{: |
- | pip3 install twisted librosa bs4 | + | {{: |
- | + | {{tag>python sb}} | |
- | Puisque l' | + | |
- | + | ||
- | ===2ème solution=== | + | |
- | Utiliser l’interpréteur installé dans le « virtualenv » : | + | |
- | + | ||
- | * ~/ | + | |
- | + | ||
- | Mais je suis noob en console python ! | + | |
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | =====Requirement===== | + | |
- | <WRAP center round todo centeralign 60%> | + | |
- | **A sérieusement améliorer** | + | |
- | </ | + | |
- | + | ||
- | ===Ressources=== | + | |
- | | + | |
- | | + | |
- | ===Exemple=== | + | |
- | <file txt requirements.txt> | + | |
- | twisted | + | |
- | service_identity | + | |
- | google-auth-oauthlib | + | |
- | </file> | + | |
- | + | ||
- | Dans un terminal, dans le dossier de requirements.txt, | + | |
- | sudo pip3 install -r requirements.txt | + |
virtualenv.1535789669.txt.gz · Dernière modification : 2018/09/01 08:14 de serge