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/09 11:57] – 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:// | ||
</ | </ | ||
- | =====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, par exemple sur un hôte distant (miskin ou rybn) dont vous n'avez pas les droits ? | + | <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 dans le système). | + | Notez le –user, ainsi que les -m.\\ |
+ | Ceci va installer psutil dans ~.local, pas au niveau du système. L' | ||
- | ====Ressources==== | + | Si besoin, ajouter à ~.bashrc |
- | * **[[https://deusyss.developpez.com/tutoriels/ | + | <code bash> |
- | =====Comment créer un virtualenv ?===== | + | ====Liste des package installés localement==== |
- | Voici la marche à suivre pour créer | + | Donc sans les packages du système et les packages installés dans le système. |
+ | python3 -m pip list --user | ||
+ | ===== Environnement Virtuel ===== | ||
- | ====Installation==== | + | ==== Installation |
- | Installe | + | <code bash> |
- | sudo apt-get install python3-venv | + | # Mise à jour de pip |
+ | python3 -m pip install | ||
+ | # Installation de venv | ||
+ | sudo apt install python3-venv | ||
+ | </ | ||
+ | =====Ressources===== | ||
+ | * **https:// | ||
- | Crée un dossier / | + | ==== Initialisation |
- | ====Utilisation==== | + | <code bash> |
+ | cd / | ||
+ | # Création du dossier environnement si pas encore créé | ||
+ | python3 -m venv mon_env | ||
+ | # Activation | ||
+ | source mon_env/ | ||
+ | # le prompt devient (mon_env) machin@127:/ | ||
+ | # 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 | ||
+ | </ | ||
- | python3 -m venv ~/VEnv | + | ====Arguments spécifiques==== |
- | + | ||
- | ===1ère solution=== | + | |
- | source ~/VEnv/bin/activate | + | ===Installation avec les sources dans un dossier=== |
+ | <code bash> | ||
- | équivalent à | + | ===Avec accès aux package système=== |
+ | * https:// | ||
- | source | + | Permet à python du venv d' |
+ | <code bash> | ||
| | ||
- | Le prompt devient: | + | --no-site-packages est la valeur par défaut |
- | (VEnv) user@PC01:~$ | + | ===Depuis un Git=== |
+ | <code bash> | ||
- | Installation des modules appelés par votre projet: | + | ====Exécution d'un script de votre projet==== |
- | * [[https://deusyss.developpez.com/tutoriels/Python/packaging_pypi/#LIV|Wheel : le nouveau format officiel]] | + | <code bash> |
+ | cd /le/dossier/ | ||
+ | ./mon_env/bin/python3 ./sous_dossier/ | ||
+ | # Dans Geany, commande de construction | ||
+ | ../ | ||
+ | </ | ||
- | pip3 install setuptools | + | ==== Relance pour installer de nouveaux package ==== |
- | | + | <code bash> |
- | | + | cd / |
+ | source mon_env/ | ||
+ | python3 -m pip install | ||
+ | # 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</ | ||
- | Puisque l' | ||
- | |||
- | ===2ème solution=== | ||
- | Utiliser l’interpréteur installé dans le « virtualenv » : | ||
- | |||
- | * ~/ | ||
- | |||
- | Mais je suis noob en console python ! | ||
- | |||
- | ===Ensuite=== | ||
- | |||
- | cd / | ||
- | nohup python3 main.py & | ||
| | ||
- | Le script main.py continuera a tourner dans la console virtuelle. | + | =====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 | ||
+ | </ | ||
- | =====Requirement===== | + | =====Travailler avec Geany et un Virtual Env===== |
- | ===Ressources=== | + | * **[[https://stackoverflow.com/questions/42013705/using-geany-with-python-virtual-environment|Using geany with python virtual environment]]** |
- | * [[https:// | + | Dans " |
- | | + | ../mon_env/bin/python3 " |
- | | + | {{: |
- | + | {{: | |
- | ===Installation de modules indiqué dans requirements.txt=== | + | {{tag> |
- | <file txt requirements.txt> | + | |
- | twisted | + | |
- | service_identity | + | |
- | google-auth-oauthlib | + | |
- | </file> | + | |
- | + | ||
- | Dans un terminal, dans le dossier | + | |
- | | + | |
- | + | ||
- | ===Exemple=== | + | |
- | Ouvrir un terminal dans le dossier de votre projet: | + | |
- | python3 -m venv ~/VEnv | + | |
- | source ~/VEnv/bin/activate | + | |
- | pip3 install -r requirements.txt | + | |
- | | + | |
- | | + | |
- | | + |
virtualenv.1536494272.txt.gz · Dernière modification : 2018/09/09 11:57 de serge