• 6 heures
  • Facile

Ce cours est visible gratuitement en ligne.

course.header.alt.is_video

course.header.alt.is_certifying

J'ai tout compris !

Mis à jour le 11/12/2023

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

Écrivez le code Python dans 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 :

$ python demo.py
Traceback (most recent call last):
File "demo.py", line 1, in <module>
import matplotlib.pyplot as plt
ModuleNotFoundError: No module named 'matplotlib'

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 ce graphique :

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 matplotlibpour que nous puissions exécuter notre script :

$ pip install matplotlib
Collecter matplotlib
Utilisation de https://files.pythonhosted.org/packages/0d/61/b741990b429341bac1af5f5c645ee7aaa3bbe7daf3418d283c92c4b5ee82/matplotlib-3.2.1-cp37-cp37m-macosx_10_9_hl
Requirement already satisfied: kiwisolver>=1.0.1 in ./env/lib/python3.7/site-packages (from matplotlib) (1.2.0)
Requirement already satisfied: cycler>=0.10 in ./env/lib/python3.7/site-packages (from matplotlib) (0.10.0)
Requirement already satisfied: pyparsing!=2.0.4,!=2.1.2,!=2.1.6,>=2.0.1 in ./env/lib/python3.7/site-packages (from matplotlib) (2.4.7)
Requirement already satisfied: python-dateutil>=2.1 in ./env/lib/python3.7/site-packages (from matplotlib) (2.8.1)
Requirement already satisfied: numpy>=1.11 in ./env/lib/python3.7/site-packages (from matplotlib) (1.18.4)
Requirement already satisfied: six in ./env/lib/python3.7/site-packages (from cycler>=0.10->matplotlib) (1.15.0)
Installing collected packages: matplotlib
Successfully installed matplotlib-3.2.1

Si vous exécutez à nouveau le script, il doit fonctionner ! :magicien:

$ python demo.py
Courbe linéaire
Graphique - matplotlib

Félicitations, vous devriez maintenant avoir créé votre deuxième environnement virtuel, et exécuté une application qui l'utilise ! :D

Si vous rencontrez des difficultés, regardez cette vidéo :

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 :

(env) ~/projects/demo-app-2$ deactivate
~/projects/demo-app-2$

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  :

$ pip freeze
certifi==2020.4.5.1
chardet==3.0.4
idna==2.9
requests==2.23.0
urllib3==1.25.9

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 !

(env) ~/projects/demo-app-$ cd ../demo-app-2/
(env) ~/projects/demo-app-2$ source env/bin/activate
(env) ~/projects/demo-app-2$ pip freeze
cycler==0.10.0
kiwisolver==1.2.0
matplotlib==3.2.1
numpy==1.18.4
pyparsing==2.4.7
python-dateutil==2.8.1
six==1.15.0

(env) ~/projects/demo-app-2$ python demo.py

Vous noterez que le (env)  ajouté à l'invite de commande reste cohérent lorsque nous passons de l'environnement virtuel de demo-app  à celui de demo-app-2  . C'est parce que les environnements virtuels ont tous les deux le même nom (env  ). Nous verrons ce point de façon plus détaillée dans la prochaine section. ;)

Regardez la vidéo ci-dessous si vous souhaitez voir la démonstration d'un basculement entre environnements virtuels.

Exercice

Vous travaillez cette fois encore dans une agence de vente et de marketing en tant que spécialiste du marketing. Votre patron a travaillé sur deux projets Python différents, mais il veut à présent que vous en preniez la responsabilité. Malheureusement, il n'est pas au bureau aujourd'hui ! :colere:

Il vous a toutefois envoyé un dossier compressé contenant les projets sur lesquels il a travaillé. Vos tâches seront les suivantes :

  • Télécharger les dossiers et les fichiers des deux projets et les placer dans votre dossier de projets : p2c3s2.zip.

  • Créer un environnement virtuel pour chaque projet.

  • La première fois que vous tenterez d'exécuter chacune des applications, elle échouera.

  • Trouver et installer les paquets dont vous pensez avoir besoin pour exécuter chaque application.

  • Exécuter chaque application.

  • Vous entraîner à passer d'un environnement virtuel à l'autre et à exécuter chaque application.

Vérifiez votre travail

Regardez-moi exécuter l'exercice :

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.

Maintenant que vous savez comment travailler avec plusieurs environnements virtuels, demandons-nous quelles sont les meilleures conventions de nommage pour ces environnements virtuels.

Exemple de certificat de réussite
Exemple de certificat de réussite