Outils pour utilisateurs

Outils du site


cours:informatique:dev:python:environnement_python:220_creer_env_virtuel

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

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 !

Nous allons parcourir ces étapes ensemble.

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

mkdir projects
cd projects

À 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 :

demo.py
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é.

example.com est un site web géré par l' IANA1), qui peut être utilisé dans des documentations à des fins d'illustration. Vous pouvez essayer de le consulter dans votre navigateur.

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

python3 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 :

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.

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 choisissez, mais par convention, nous utilisons env :

python3 -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’). Cette modification du prompt permet de visualiser l'activation de l'environnement virtuel.

Si vous exécutez à nouveau pip 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 :

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 requests n'est pas installé dans votre environnement virtuel. Maintenant, installez le paquet requests avec pip :

pip install requests

La commande ci-dessus installe le paquet requests (ainsi que ses 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 les dépendances.

A présent 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 dans le prompt.

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.
exo3_script.py
from geopy.distance import geodesic
 
potential_client_one = (51.5074, 0.1278)
potential_client_two = (40.7128, 74.0060)
print('The two clients are {} miles apart'.format(
    geodesic(potential_client_one, potential_client_two).miles))
  • 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

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éé.

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

1)
I nternet Assigned Numbers Authority
cours/informatique/dev/python/environnement_python/220_creer_env_virtuel.txt · Dernière modification : 2023/09/24 16:40 de yoann