Python : gestion des paquets
Les commandes de cette page s’exécutent dans un environnement virtuel actif (voir Environnements virtuels).
Installer
Section intitulée « Installer »pip install requests # dernière versionpip install requests==2.32.3 # version exactepip install "requests>=2.32,<3" # intervallepip install -r requirements.txt # depuis un fichierpip install ./dossier-local # projet localpip install git+https://git.exemple.com/depot.git@v1.0 # depuis un dépôt GitConsulter
Section intitulée « Consulter »pip listpip list --outdated # paquets pouvant être mis à jourpip show requests # version, dépendances, emplacementpip freezepip check # dépendances incompatiblesMettre à jour et supprimer
Section intitulée « Mettre à jour et supprimer »pip install --upgrade requestspip install --upgrade pippip uninstall requestsFichiers de dépendances
Section intitulée « Fichiers de dépendances »requirements.txt :
requests==2.32.3flask>=3,<4pytest==8.3.4 # dépendance de testPour séparer production et développement : requirements.txt et requirements-dev.txt (qui commence par -r requirements.txt).
Contraintes et reproductibilité
Section intitulée « Contraintes et reproductibilité »Les installations qui doivent être identiques (serveur, CI) utilisent des versions figées :
pip freeze > requirements.lockpip install --require-hashes -r requirements.lock # si les empreintes sont présentesAvec uv : uv lock puis uv sync --frozen.
Sécurité des dépendances
Section intitulée « Sécurité des dépendances »pip install pip-auditpip-audit # vulnérabilités connuespip-audit -r requirements.txtBonnes pratiques :
- Installer uniquement des paquets connus ; vérifier le nom exact (usurpation de noms proches).
- Éviter les paquets abandonnés ; vérifier la date de dernière publication.
- Figer et relire les mises à jour avant de les déployer.
- Ne pas exécuter
pip installenroot.
Dépôt de paquets privé
Section intitulée « Dépôt de paquets privé »pip install --index-url https://depot.exemple.com/simple/ monpaquetpip config set global.extra-index-url https://depot.exemple.com/simple/Paquets système avec apt
Section intitulée « Paquets système avec apt »Certains paquets Python existent sous forme de paquets Ubuntu (python3-requests, python3-yaml…). Ils servent aux outils du système :
apt search python3- | grep -i requestssudo apt install python3-requestsUn environnement virtuel ne voit pas ces paquets par défaut. Pour y donner accès (cas particulier, par exemple python3-gi) : python3 -m venv --system-site-packages .venv.
Cache et espace disque
Section intitulée « Cache et espace disque »pip cache dirpip cache infopip cache purgeConstruire et publier un paquet
Section intitulée « Construire et publier un paquet »pip install buildpython3 -m build # crée dist/*.whl et dist/*.tar.gzPublier sur un dépôt demande un jeton de publication : ne jamais le versionner.
Dépannage
Section intitulée « Dépannage »| Symptôme | Piste |
|---|---|
ERROR: No matching distribution found |
Nom ou version inexistants, ou version de Python non compatible |
ERROR: Could not build wheels |
Outils de compilation : sudo apt install build-essential python3-dev |
ResolutionImpossible |
Contraintes incompatibles : relâcher une version ou utiliser uv pip install pour un message plus clair |
ModuleNotFoundError après installation |
Mauvais environnement : which python, python -m pip install … |
SSL: CERTIFICATE_VERIFY_FAILED |
Certificats ou proxy d’entreprise : sudo apt install ca-certificates |
| Conflit entre deux paquets | pip check, pip show <paquet> |
Ubuntu 24.04 et 26.04 : différences à connaître
Section intitulée « Ubuntu 24.04 et 26.04 : différences à connaître »pip se comporte de la même manière. Certains paquets n’ont pas encore de binaire (wheel) pour Python 3.14 : ils se compilent alors depuis les sources, ce qui exige les outils de compilation.