Isoler les dépendances
- Leçon 3
- 35 min
- Module 1 : Bases de l'ordinateur et de l'environnement
Leçon 3 sur 18 · Python pour l'ingénierie de l'IA en pratiqueIsoler les dépendances
1. Bases de l'ordinateur et de l'environnement
2. Valeurs et flux de contrôle
3. Fonctions et structure du programme
4. Fichiers, données et services externes
5. Débogage et fiabilité
6. Du carnet Jupyter au projet facile à maintenir
Ce que vous saurez faire
Donnez au projet ticket-cleaner son propre environnement Python, installez-y un paquet et notez les versions exactes. Le projet fonctionnera ainsi de la même façon le mois prochain et sur l’ordinateur d’une autre personne.
Avant de commencerCe qu’il faut savoir et avoir sous la main
Ce que vous devez savoir
- Ce qu’est l’interpréteur et comment vérifier quel Python s’exécute, dans Installer et vérifier Python.
- Le répertoire de travail, dans Les fichiers et le terminal.
Ce qu’il vous faut sur votre ordinateur
- Python 3.12 ou plus récent, qui s’exécute quand vous tapez
python3(pythonsur Windows). Vous l’avez installé dans Installer et vérifier Python : étape 1. Si le mauvais Python s’exécute, suivez l’erreur courante « Le mauvais Python s’exécute » sur cette page. first_run.pydans~/projects/ticket-cleaner. Vous l’avez créé dans Installer et vérifier Python : exercices guidés. S’il manque, recréez-le à partir de l’exemple détaillé.- VS Code avec l’extension Python, présenté dans Installer et vérifier Python : étape 3. Un autre éditeur de code convient aussi.
- Une connexion Internet. Vous téléchargez environ 1 Mo de paquets.
Testé avec Python 3.14 sur macOS (pip 26.1), Windows dans PowerShell et Ubuntu 26.04 (pip 25.1).
Les paquets et pourquoi chaque projet a besoin des siens
Section intitulée « Les paquets et pourquoi chaque projet a besoin des siens »Python comprend beaucoup de code prêt à utiliser. Pour d’autres tâches, vous utilisez des paquets : du code que d’autres personnes ont écrit et publié. Par exemple, le paquet httpx envoie des requêtes à des sites Web, et le paquet pytest exécute des tests. Vous utiliserez les deux plus tard dans ce cours. La plupart des paquets viennent du Python Package Index (PyPI). Vous les installez avec un outil appelé pip.
Un paquet dont votre projet a besoin est une dépendance du projet. Les dépendances causent deux problèmes quand tous les projets partagent un seul Python :
- Les versions entrent en conflit. Un ancien projet a besoin de
httpx0.27, et un nouveau projet a besoin de 0.28. Un seul Python ne peut contenir qu’une version à la fois. - La liste se perd. Après quelques mois, personne ne sait quels paquets ce projet utilise et lesquels appartiennent aux autres projets. Un nouveau membre de l’équipe ne peut pas le configurer.
Un environnement virtuel règle les deux problèmes. C’est un dossier dans votre projet, généralement appelé .venv. Il possède son propre lien vers l’interpréteur et son propre emplacement pour les paquets. Les paquets que vous y installez sont visibles seulement dans ce projet. Le Python que vous avez installé dans la leçon précédente ne change pas.
Description textuelle du diagramme
Le terminal exécute python first_run.py. Comme l’environnement est activé, python désigne l’interpréteur dans .venv. Cet interpréteur lit le script dans le dossier du projet. Quand le script importe un paquet, il le cherche dans .venv. L’éditeur possède son propre réglage d’interpréteur (ligne pointillée), qui doit pointer vers le même .venv. Si le terminal ou l’éditeur utilise un autre interpréteur, il ne trouve pas les paquets dans .venv.
Pour utiliser un environnement dans un terminal, vous l’activez. L’activation modifie ce terminal pour que la commande python désigne l’interpréteur dans .venv. L’environnement reste actif jusqu’à ce que vous fermiez le terminal ou exécutiez deactivate. L’invite du terminal commence par (.venv) pendant qu’il est actif.
Exemple détaillé : créer et utiliser un environnement
Section intitulée « Exemple détaillé : créer et utiliser un environnement »Amira crée un environnement pour ticket-cleaner. La partie -m venv indique à Python d’exécuter son outil intégré venv. Le dernier argument est le nom du dossier à créer.
cd ~/projects/ticket-cleanerpython3 -m venv .venvsource .venv/bin/activatecd ~/projects/ticket-cleanerpython -m venv .venv.venv\Scripts\Activate.ps1cd ~/projects/ticket-cleanerpython3 -m venv .venvsource .venv/bin/activateL’invite commence maintenant par (.venv). À partir de là, elle tape python sur chaque système, car l’activation fait pointer python vers l’environnement. Elle vérifie quel interpréteur s’exécute :
python -c "import sys; print(sys.executable)"/Users/amira/projects/ticket-cleaner/.venv/bin/pythonLe chemin se trouve dans le dossier du projet. Sur Windows, il se termine par ticket-cleaner\.venv\Scripts\python.exe.
Ensuite, elle installe une version exacte de httpx. == signifie « exactement cette version ». Elle exécute pip avec l’interpréteur au moyen de python -m pip. Le paquet va donc dans l’environnement de cet interpréteur, et nulle part ailleurs :
python -m pip install httpx==0.28.1Successfully installed anyio-4.15.1 certifi-2026.7.22 h11-0.16.0 httpcore-1.0.9 httpx-0.28.1 idna-3.20 typing_extensions-4.16.0Elle a demandé un paquet, et pip en a installé sept. httpx possède ses propres dépendances, et pip les a aussi installées. Si pip affiche aussi un avis indiquant qu’une nouvelle version de pip est disponible, elle peut l’ignorer.
Pour voir la différence, elle quitte l’environnement et essaie la même importation avec le Python de l’ordinateur :
deactivatepython3 -c "import httpx"Traceback (most recent call last): File "<string>", line 1, in <module> import httpxModuleNotFoundError: No module named 'httpx'C’est l’isolation qui fonctionne. httpx existe seulement dans .venv. Elle active de nouveau l’environnement avant de continuer.
Noter les versions
Section intitulée « Noter les versions »Amira note les besoins du projet pour qu’une autre personne, ou elle-même le mois prochain, puisse recréer le même environnement. Elle utilise deux fichiers :
| Fichier | Contenu | Qui l’écrit |
|---|---|---|
requirements.txt |
Les paquets que le projet utilise directement, avec les versions qu’elle a choisies. | Vous, à la main. |
requirements-lock.txt |
Chaque paquet de l’environnement, avec sa version exacte, y compris les dépendances des dépendances. | pip, avec pip freeze. |
Dans VS Code, elle crée requirements.txt avec une seule ligne :
httpx==0.28.1Ensuite, elle crée le fichier de verrouillage. Le signe > envoie la sortie de la commande dans un fichier plutôt qu’à l’écran :
python -m pip freeze > requirements-lock.txtanyio==4.15.1certifi==2026.7.22h11==0.16.0httpcore==1.0.9httpx==0.28.1idna==3.20typing_extensions==4.16.0Pourquoi les deux? requirements.txt est court et montre vos décisions. Quand vous voulez une version plus récente de httpx, vous y modifiez une ligne. Le fichier de verrouillage montre exactement ce qui a été installé. Un nouvel environnement reçoit ainsi les mêmes versions des sept paquets, pas seulement de httpx. Vos versions peuvent être plus récentes que celles-ci. C’est pourquoi vous devez les noter.
Recréer l’environnement à partir de zéro
Section intitulée « Recréer l’environnement à partir de zéro »Un environnement peut être supprimé. Il contient des milliers de fichiers que pip peut recréer. Vous ne le copiez donc pas sur un autre ordinateur et ne l’enregistrez pas dans Git. Vous conservez le fichier de verrouillage. Pour prouver que ce fichier fonctionne, Amira supprime l’environnement et le recrée.
deactivaterm -rf .venvpython3 -m venv .venvsource .venv/bin/activatepython -m pip install -r requirements-lock.txtdeactivateRemove-Item -Recurse -Force .venvpython -m venv .venv.venv\Scripts\Activate.ps1python -m pip install -r requirements-lock.txtdeactivaterm -rf .venvpython3 -m venv .venvsource .venv/bin/activatepython -m pip install -r requirements-lock.txtL’option -r signifie « lire la liste des paquets dans ce fichier ». pip installe les sept mêmes versions. C’est aussi votre réinitialisation : si un environnement ne fonctionne plus correctement, supprimez-le et recréez-le à partir du fichier de verrouillage.
Si vous utilisez Git (voir L’essentiel de Git et du développement en équipe), ajoutez un fichier .gitignore au projet. Inscrivez-y la ligne .venv/. Git ne suit alors pas l’environnement. Vous faites un commit (enregistrement des changements) de requirements.txt et de requirements-lock.txt.
Indiquer à l’éditeur quel interpréteur utiliser
Section intitulée « Indiquer à l’éditeur quel interpréteur utiliser »VS Code exécute et vérifie votre code avec son propre réglage d’interpréteur. Choisissez l’environnement pour que l’éditeur et le terminal utilisent le même interpréteur.
- Dans VS Code, ouvrez le dossier
ticket-cleaner. - Appuyez sur Ctrl+Shift+P (Cmd+Shift+P sur macOS).
- Tapez
Python: Select Interpreter(Python : sélectionner l’interpréteur), puis appuyez sur Enter. - Sélectionnez l’entrée qui affiche
.venv. - Ouvrez un nouveau terminal avec Terminal › New Terminal (Terminal › Nouveau terminal). VS Code active l’environnement pour vous, et l’invite commence par
(.venv).
Exercices guidés : configurer ticket-cleaner
Section intitulée « Exercices guidés : configurer ticket-cleaner »Reproduisez l’exemple détaillé sur votre ordinateur.
-
Allez dans le dossier du projet :
cd ~/projects/ticket-cleaner. -
Créez l’environnement :
python3 -m venv .venv(python -m venv .venvsur Windows). -
Activez-le. Sur macOS et Linux, exécutez
source .venv/bin/activate. Sur Windows, exécutez.venv\Scripts\Activate.ps1.L’invite commence par
(.venv). Si Windows affiche une erreur concernant l’exécution des scripts, consultez la deuxième erreur courante ci-dessous. -
Vérifiez l’interpréteur :
Fenêtre de terminal python -c "import sys; print(sys.executable)"Le chemin contient
ticket-cleaneret.venv. -
Installez le paquet :
python -m pip install httpx==0.28.1.La dernière ligne commence par
Successfully installed(installation réussie). -
Créez
requirements.txtavec la lignehttpx==0.28.1. -
Créez le fichier de verrouillage :
python -m pip freeze > requirements-lock.txt. -
Exécutez de nouveau votre premier script :
python first_run.py.La ligne
Interpreter:(interpréteur) affiche maintenant le chemin dans.venv.
À vous de jouer : un deuxième projet
Section intitulée « À vous de jouer : un deuxième projet »Créez un deuxième projet, ~/projects/env-practice, avec son propre environnement. Installez-y la version 0.27.2 de httpx. Créez ensuite un script check_httpx.py dans les deux projets :
import sys
import httpx
print("Interpreter:", sys.executable)print("httpx version:", httpx.__version__)Exécutez le script dans chaque projet, avec l’environnement de ce projet activé. Prédisez d’abord les deux sorties.
Afficher le résultat attendu
Dans env-practice, le script affiche l’interpréteur dans env-practice/.venv et httpx version: 0.27.2 (version de httpx : 0.27.2). Dans ticket-cleaner, il affiche ticket-cleaner/.venv et 0.28.1. Deux versions du même paquet existent sur un ordinateur, et aucun projet n’a d’effet sur l’autre. Pensez à exécuter deactivate avant de passer à l’autre projet, puis activez l’environnement de ce projet.
Erreur courante
No module named … (aucun module nommé…)
Symptôme : vous exécutez un script, et il s’arrête avec cette erreur, même si vous avez installé le paquet :
ModuleNotFoundError: No module named 'httpx'Cause : le script utilise un autre interpréteur que celui où vous avez installé le paquet. Généralement, l’environnement n’est pas actif dans ce terminal. Un nouveau terminal ne l’active pas, et l’invite n’affiche pas (.venv). Dans VS Code, le bouton Run (exécuter) peut aussi utiliser un autre interpréteur que le terminal.
Solution :
- Vérifiez l’interpréteur :
python -c "import sys; print(sys.executable)". - Si le chemin n’est pas dans le
.venvde votre projet, activez l’environnement et exécutez de nouveau le script. - Si le chemin est correct, le paquet n’est pas dans cet environnement. Installez-le à partir du fichier de verrouillage :
python -m pip install -r requirements-lock.txt. - Dans VS Code, sélectionnez de nouveau l’interpréteur de
.venv(voir plus haut).
Ne corrigez pas cette erreur en installant le paquet avec un autre pip jusqu’à ce que cela fonctionne. Cela place les paquets à plusieurs endroits, et la prochaine erreur sera plus difficile à trouver.
Erreur courante
Running scripts is disabled (l'exécution des scripts est désactivée, Windows)
Symptôme : sur Windows, la commande d’activation affiche une erreur comme celle-ci, et l’invite ne change pas :
.venv\Scripts\Activate.ps1 cannot be loaded because running scripts is disabled on this system.Cause : PowerShell n’exécute pas les fichiers de script par défaut. La commande d’activation est un fichier de script.
Solution : autorisez les scripts créés sur votre ordinateur, pour votre compte utilisateur seulement. Exécutez ceci une seule fois :
Set-ExecutionPolicy -ExecutionPolicy RemoteSigned -Scope CurrentUserTapez Y (oui) si PowerShell demande une confirmation, puis exécutez de nouveau .venv\Scripts\Activate.ps1. Si votre employeur gère votre ordinateur, ce réglage peut être verrouillé. Dans ce cas, demandez à votre équipe informatique. Ou ouvrez Command Prompt (invite de commandes) plutôt que PowerShell, et exécutez .venv\Scripts\activate.bat.
Vérifiez votre compréhension
Vous ouvrez un nouveau terminal, allez dans ticket-cleaner et exécutez python first_run.py. La ligne Interpreter affiche un chemin hors de .venv. Pourquoi, et que faites-vous?
Afficher la réponse
Un nouveau terminal n’active pas l’environnement. python désigne donc le Python de l’ordinateur, ou la commande python n’existe pas sur macOS et Linux. Activez l’environnement avec source .venv/bin/activate (.venv\Scripts\Activate.ps1 sur Windows). Vérifiez que l’invite commence par (.venv), et exécutez de nouveau le script.
Votre réponse contient-elle les points principaux de la nôtre ?
Connectez-vous et inscrivez-vous au cours pour enregistrer vos réponses. Chaque vérification compte pour le certificat.
Vérifiez votre compréhension
Un collègue vous envoie un projet avec requirements.txt et requirements-lock.txt, mais sans dossier .venv. Manque-t-il quelque chose? Comment le configurez-vous?
Afficher la réponse
Il ne manque rien. On ne partage pas l’environnement, car on peut le recréer. Créez un environnement dans le dossier du projet, activez-le et exécutez python -m pip install -r requirements-lock.txt. Vous obtenez la même version de chaque paquet que votre collègue.
Votre réponse contient-elle les points principaux de la nôtre ?
Connectez-vous et inscrivez-vous au cours pour enregistrer vos réponses. Chaque vérification compte pour le certificat.
Vérifiez votre compréhension
Vérification du module : dans un nouveau terminal, montrez quel interpréteur et quel environnement sont utilisés dans ticket-cleaner. Désactivez ensuite l'environnement, exécutez check_httpx.py et corrigez l'erreur affichée sans rien installer de nouveau.
Afficher la réponse
Avec l’environnement actif, python -c "import sys; print(sys.executable)" affiche un chemin dans ticket-cleaner/.venv, et l’invite commence par (.venv). Après deactivate, python3 check_httpx.py s’arrête avec ModuleNotFoundError: No module named 'httpx' (erreur de module introuvable : aucun module nommé « httpx »). Le Python de l’ordinateur ne possède pas httpx. La solution est de réactiver l’environnement, pas d’installer httpx ailleurs. Le script affiche alors httpx version: 0.28.1.
Votre réponse contient-elle les points principaux de la nôtre ?
Connectez-vous et inscrivez-vous au cours pour enregistrer vos réponses. Chaque vérification compte pour le certificat.
Récapitulatif
- Une dépendance est un paquet dont votre projet a besoin. pip installe les paquets depuis PyPI.
- Un environnement virtuel (
.venv) donne à un projet ses propres paquets. Activez-le dans chaque nouveau terminal. L’invite affiche(.venv). - Installez avec
python -m pip install name==versionpour que le paquet aille dans l’environnement actif. requirements.txtliste vos choix.requirements-lock.txt(créé avecpip freeze) note chaque version exacte. Conservez les deux et recréez l’environnement à partir du fichier de verrouillage au besoin.- Si un module est introuvable, vérifiez
sys.executableavant d’installer quoi que ce soit.
Vous pouvez maintenant configurer un projet Python qu’une autre personne peut recréer. Dans le prochain module, vous commencez à écrire du Python : valeurs, collections, conditions et boucles.
Leçon suivante : Les valeurs de base