• 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

Créez votre premier environnement virtuel

Que se passe-t-il si nous n'utilisons pas d'environnement virtuel ?

Supposons que vous entamiez un nouveau projet dans votre travail. Vous avez reçu et compris le cahier des charges du projet, et vous avez déjà commencé à planifier l'architecture de votre code. Vous voilà prêt à commencer à écrire du code ! :D

Nous allons parcourir ces étapes ensemble.

Commencez par créer un répertoire projects  qui hébergera votre projet.

$ mkdir projects
$ cd projects
$ ls
~/project

À ce stade, nous créons un nouveau répertoire appelé demo-app  , pour y stocker le code de notre projet :

$ mkdir demo-app
$ cd demo-app/ 

Créez un fichier appelé demo.py  contenant les éléments suivants :

import requests
r = requests.get('http://www.example.com')
print(r.status_code)

Lorsque vous consultez un site web sur votre navigateur et, de façon générale, lorsque vous demandez ou transmettez des informations sur Internet, vous effectuez une requête (request, en anglais). La requête utilisée pour récupérer des données, par exemple lors de la consultation d'un site web, s'appelle une requête GET  .

Les données que vous récupérez seront accompagnées d'un grand nombre d'informations différentes, telles que le code de réponse HTTP, qui sert à indiquer si votre requête a réussi, échoué, ou si l'appareil qui vous a répondu ne peut pas préparer le café puisqu'il s'agit en réalité d'une théière ! :p Si vous souhaitez en savoir un peu plus, suivez notre cours Comprendre le Web.)

C'est exactement ce que fait l'extrait de code ci-dessus : il demande des informations (récupérer le site web www.example.com), puis il affiche le code de la réponse HTTP. Avec un peu de chance, ce code sera 200, qui signifie que tout s’est bien passé.

À ce stade, vous pouvez essayer d'exécuter  demo.py  comme suit :

$ python demo.py

En fonction d'un certain nombre de facteurs, le programme peut s'exécuter correctement ou non. Si le script s'exécute correctement, le résultat doit ressembler à ceci :

$ python demo.py
200

Le code 200  signifie que la requête vers http://www.example.com a été correctement exécutée.

Le script s'est correctement exécuté parce que vous avez installé le paquet de requêtes dans vos paquets globaux. Vous pouvez voir vos paquets Python globaux en exécutant pip freeze  .

Si le programme ne parvient pas à s'exécuter, le résultat ressemblera probablement à ce qui suit :

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

Vous recevrez ce résultat si vous n'avez pas installé requests  comme paquet Python global.

Regardez la vidéo ci-dessous si vous souhaitez vérifier à nouveau que vous maîtrisez le sujet !

Exécutez l'application dans un environnement virtuel

Il est fortement conseillé d'utiliser le moins possible les paquets Python installés globalement. Comme nous l'avons vu au chapitre précédent, il est préférable de créer un environnement pour chacun des projets sur lesquels nous travaillons et d'installer les paquets localement, au sein de l'environnement.

Pour créer un environnement, utilisez la commande python -m venv <environment name>  .

Notez que <environment name>  est un nom que vous choississez, mais par convention, nous utilisons env  :

$ python -m venv env

Si vous répertoriez maintenant les fichiers figurant dans le répertoire demo-app  , vous verrez que vous avez créé un répertoire appelé env :

$ ls
demo.py env

Pour activer l'environnement, exécutez source env/bin/activate  (si vous êtes sous Windows, la commande sera  env\Scripts\activate.bat  ).

Si vous utilisez PowerShell, il faut exécuter la commande sans  .bat . Vous trouverez plus d'informations sur le site de Stackoverflow

À ce stade, votre terminal (selon celui que vous utilisez) ajoutera probablement le nom de votre environnement au début de chaque ligne de votre terminal (ici, ‘env’) :

~/projects/demo-app$ source env/bin/activate
(env) ~/projects/demo-app$

Si vous exécutez à nouveaupip freeze, vous ne devriez maintenant plus voir de paquet répertorié. Cela montre qu'aucun paquet n'est installé dans votre environnement virtuel. C'est le comportement par défaut lorsque vous créez un environnement virtuel.

$ pip freeze

$

Maintenant, si vous tentez d'exécuter à nouveau le script demo.py, il ne fonctionnera absolument pas et vous devriez recevoir le résultat suivant :

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

La raison est que le paquet de requêtes n'est pas installé dans votre environnement virtuel. Maintenant, installez le paquet ‘requests’ avec pip  :

$ pip install requests
Collecting requests
Cache entry deserialization failed, entry ignored
Downloading https://files.pythonhosted.org/packages/45/1e/0c169c6a5381e241ba7404532c16a21d86ab872c9bed8bdcd4c423954103/requests-2.24.0-py2.py3-none-any.whl (61kB)
Collecting urllib3!=1.25.0,!=1.25.1,<1.26,>=1.21.1 (from requests)
Downloading https://files.pythonhosted.org/packages/9f/f0/a391d1463ebb1b233795cabfc0ef38d3db4442339de68f847026199e69d7/urllib3-1.25.10-py2.py3-none-any.whl (127kB)
Collecting certifi>=2017.4.17 (from requests)
Downloading https://files.pythonhosted.org/packages/5e/c4/6c4fe722df5343c33226f0b4e0bb042e4dc13483228b4718baf286f86d87/certifi-2020.6.20-py2.py3-none-any.whl (156kB)
Collecting idna<3,>=2.5 (from requests)
Downloading https://files.pythonhosted.org/packages/a2/38/928ddce2273eaa564f6f50de919327bf3a00f091b5baba8dfa9460f3a8a8/idna-2.10-py2.py3-none-any.whl (58kB)
Collecting chardet<4,>=3.0.2 (from requests)
Downloading https://files.pythonhosted.org/packages/bc/a9/01ffebfb562e4274b6487b4bb1ddec7ca55ec7510b22e4c51f14098443b8/chardet-3.0.4-py2.py3-none-any.whl (133kB)
Installing collected packages: urllib3, certifi, idna, chardet, requests
Successfully installed certifi-2020.6.20 chardet-3.0.4 idna-2.10 requests-2.24.0 urllib3-1.25.10

La commande ci-dessus installe le paquet requests  (ainsi que certaines dépendances, qui peuvent avoir été mises en cache lors d'installations précédentes de paquets) dans votre environnement virtuel. Si vous exécutez à nouveau pip freeze  , vous constaterez que requests  est installé, ainsi que certaines dépendances :

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

Maintenant, si vous tentez d'exécuter à nouveau le scriptdemo.py, il doit s’exécuter avec succès :

$ python demo.py
200 

Félicitations, vous avez correctement créé et utilisé votre premier environnement virtuel Python.

Excellent ! Mais que se passe-t-il si je souhaite travailler sur un projet différent ?

Vous devrez « quitter » ou « désactiver » votre environnement virtuel à l'aide de la commande deactivate  pendant que votre environnement virtuel est activé. Selon le terminal que vous utilisez, le suffixe (env)  n’apparaîtra plus.

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

Dans l'exemple ci-dessus, j'ai désactivé l'environnement virtuel depuis la racine du projet (c’est-à-dire depuis le répertoire  ~/projects/demo-app  ), mais vous pouvez en réalité désactiver votre environnement virtuel depuis n'importe quel répertoire. Par exemple, si je réactive mon environnement virtuel, puis que je remonte de deux répertoires, je peux toujours désactiver cet environnement virtuel à l'aide de la commande deactivate  :

$ source env/bin/activate
$ cd ..
$ cd ..
$ deactivate

Pour en savoir plus, suivez ma démonstration ci-dessous :

Exercice

Vous travaillez dans une agence de vente et de marketing en tant que spécialiste du marketing. Votre patron travaille sur un projet Python depuis quelques semaines, et il veut maintenant vous faire travailler dessus. Malheureusement, il n'est pas au bureau aujourd'hui ! :(

Il vous a toutefois envoyé un dossier contenant le projet sur lequel il a travaillé. Vos tâches seront les suivantes :

  • Télécharger le dossier et les fichiers, puis les placer dans votre dossier de projets : p2c2s2_script.py.

  • Créer un environnement virtuel.

  • La première fois que vous tenterez d'exécuter l'application, elle échouera.

  • Trouver et installer les paquets dont vous pensez avoir besoin.

  • Exécuter l'application avec succès.

Vérifiez votre travail

Regardez-moi exécuter l'exercice :

En résumé

Maintenant que vous avez terminé ce chapitre, vous devriez aisément :

  • comprendre les problèmes qui surviennent si vous n'avez pas installé les paquets Python nécessaires ;

  • savoir quand utiliser des paquets Pythons globaux, et quand il est préférable d'utiliser un environnement virtuel ;

  • installer et utiliser des paquets Python dans un environnement virtuel que vous avez créé.

Maintenant que vous avez créé un environnement virtuel, allons plus loin et apprenons à manipuler plusieurs environnements virtuels.

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