Aller au contenu

Python : gestion des paquets

Les commandes de cette page s’exécutent dans un environnement virtuel actif (voir Environnements virtuels).

Fenêtre de terminal
pip install requests # dernière version
pip install requests==2.32.3 # version exacte
pip install "requests>=2.32,<3" # intervalle
pip install -r requirements.txt # depuis un fichier
pip install ./dossier-local # projet local
pip install git+https://git.exemple.com/depot.git@v1.0 # depuis un dépôt Git
Fenêtre de terminal
pip list
pip list --outdated # paquets pouvant être mis à jour
pip show requests # version, dépendances, emplacement
pip freeze
pip check # dépendances incompatibles
Fenêtre de terminal
pip install --upgrade requests
pip install --upgrade pip
pip uninstall requests

requirements.txt :

requests==2.32.3
flask>=3,<4
pytest==8.3.4 # dépendance de test

Pour séparer production et développement : requirements.txt et requirements-dev.txt (qui commence par -r requirements.txt).

Les installations qui doivent être identiques (serveur, CI) utilisent des versions figées :

Fenêtre de terminal
pip freeze > requirements.lock
pip install --require-hashes -r requirements.lock # si les empreintes sont présentes

Avec uv : uv lock puis uv sync --frozen.

Fenêtre de terminal
pip install pip-audit
pip-audit # vulnérabilités connues
pip-audit -r requirements.txt

Bonnes 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 install en root.
Fenêtre de terminal
pip install --index-url https://depot.exemple.com/simple/ monpaquet
pip config set global.extra-index-url https://depot.exemple.com/simple/

Certains paquets Python existent sous forme de paquets Ubuntu (python3-requests, python3-yaml…). Ils servent aux outils du système :

Fenêtre de terminal
apt search python3- | grep -i requests
sudo apt install python3-requests

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

Fenêtre de terminal
pip cache dir
pip cache info
pip cache purge
Fenêtre de terminal
pip install build
python3 -m build # crée dist/*.whl et dist/*.tar.gz

Publier sur un dépôt demande un jeton de publication : ne jamais le versionner.

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.