Outils pour utilisateurs

Outils du site


cours:informatique:dev:python:environnement_python:230_travailler_avec_plusieurs_venv

Notes et transcriptions du cours “Mettez en place votre environnement Python” disponible sur la plateforme Openclassrooms.

Travaillez avec plusieurs environnements virtuels

Créez un deuxième environnement virtuel pour une autre application

Au chapitre précédent, vous avez créé un environnement virtuel à utiliser avec un projet appelé demo-app. Dans ce chapitre, vous créerez un autre projet (et un environnement virtuel associé), et vous apprendrez à passer rapidement d'un projet à l'autre en activant l'environnement virtuel associé.

Dans votre terminal, placez-vous dans le répertoire projects et créez un projet appelé demo-app-2 :

cd projects/
mkdir demo-app-2

Vos deux projets devraient maintenant apparaître dans le répertoire «projets » :

ls
demo-app   demo-app-2

Passez dans le répertoire demo-app-2 et créez un script appelé demo.py :

cd demo-app-2
touch demo.py

La commande touch crée un fichier vierge.

Écrivez le code Python dans demo.py :

demo.py
import matplotlib.pyplot as plt
 
import numpy as np
 
 
plt.figure()
plt.plot([1, 2, 3, 4, 5], [10, 20, 30, 40, 50])
plt.show()

Comme pour le premier projet (demo-app ), si vous tentez d'exécuter le script, il pourra s'exécuter correctement ou échouer, selon que matplotlib et numpy sont installés ou pas parmi les paquets globaux. Si matplotlib n'a pas été installé globalement, vous recevrez un message d'erreur semblable à celui-ci :

python3 demo.py
Traceback (most recent call last):
File "demo.py", line 1, in <module>
import matplotlib.pyplot as plt
ModuleNotFoundError: No module named 'matplotlib'
Rappel : vous pouvez vérifier quels paquets Python ont été installés globalement en exécutant pip freeze lorsqu'aucun environnement virtuel n'est activé.

Aussi, si matplotlib est installé globalement, mais que numpy ne l'est pas, vous recevrez également un message d'erreur similaire.

Si matplotlib et numpy sont tous deux installés globalement, votre script s'exécutera correctement et affichera un graphique contenant une courbe linéaire.

Rappelons-nous qu’il ne faut installer que le strict minimum de paquets globaux, mais qu'il faut plutôt les installer dans l'environnement virtuel propre à chaque projet.

Créons un environnement virtuel pour demo-app-2. Passez dans le répertoire demo-app-2 et créons un environnement virtuel que nous appellerons ici aussi env :

python -m venv env

Activez l'environnement virtuel et vérifiez qu'aucun paquet n'est installé :

source env/bin/activate
pip freeze

Installez maintenant matplotlib pour que nous puissions exécuter notre script :

pip install matplotlib
 
# Executer le script
python3 demo.py 
Si vous obtenez une erreur du type « Matplotlib is currently using agg, which is a non-GUI backend, so cannot show the figure.», installez le paquet PyQt5==5.9.2 grâce à pip, comme ceci : pip3 install PyQt5==5.9.2.

Basculez entre plusieurs environnements virtuels

Imaginons maintenant que nous souhaitions basculer rapidement entre nos applications demo-app et demo-app-2. Pour l'instant, l'environnement virtuel de demo-app-2 est activé. Commençons par le désactiver :

<code bash> deactivate <c/ode>

Passons maintenant dans le répertoire demo-app et activons son environnement virtuel :

$ cd ../demo-app $ ls demo.py env $ source env/bin/activate

Maintenant, si vous exécutez pip freeze, vous verrez les paquets que vous avez installés dans l'environnement virtuel de demo-app :

Il est intéressant de noter que vous n'avez pas besoin de désactiver un environnement virtuel avant d'en activer un autre. Le fait d'activer un environnement prévaudra si vous vous trouvez déjà dans un autre.

Par exemple, l'environnement virtuel de demo-app est actuellement activé. Nous pouvons changer de répertoire en nous plaçant dans demo-app-2, activer son environnement virtuel et exécuter le script comme nous le souhaitons. Aucune désactivation n'est requise !

En résumé

Dans ce chapitre, vous avez acquis les compétences suivantes :

  • Basculer entre différents environnements virtuels lorsque vous travaillez sur plusieurs projets différents.
  • Activer un environnement virtuel alors que vous êtes dans un autre.

◁ Précédent | ⌂ Retour au sommaire | Suivant ▷

cours/informatique/dev/python/environnement_python/230_travailler_avec_plusieurs_venv.txt · Dernière modification : 2023/09/24 17:04 de yoann