{{tag>dev python pip}}
====== pip ======
pip est un outil de gestion des bibliothèques externes Python. Il permet:
* Installer les bibliothèques et les dépendances.
* Mettre à jour/downgrader les versions.
* Facilite le déploiement d'une application en générant un listing des bibliothèques utilisées et leurs versions
$ sudo apt-get install python-pip
Installation de la bibliothèque pourra se faire pour l'ensemble du système ou simplement pour l'utilisateur courant:
===== Mise à jour de pip =====
Si des erreurs sont retournées par les commandes pip, il est possible de le remettre à jour:
python3 -m pip install --upgrade pip
Vérifier également l'installation et les versions des paquets **setuptools** et **wheel**
===== Rechercher un paquet =====
$ pip search docker-compose
===== Installer un paquet =====
$ sudo pip install --user bottle
===== Générer un bundle =====
La commande freeze permet de lister toutes les bibliothèques et leur version, la sortie de la commande peut être redirigée dans un fichier puis réutilisée pour un déploiement de l'application.
$ pip freeze > libs.txt
Pour installer les bibliothèques:
$ pip install -r libs.txt
Toujours grâce à ce fichier de listing, il est possible de générer une archive contenant l'ensemble des dépendances pour une installation hors ligne:
$ pip bundle myLibs.pybundle -r libs.txt
===== Installer un bundle =====
Pour installer le bundle sur la machine cible:
$ pip install myLibs.pybundle
===== Gérer les versions =====
Liste les paquets installés et leur version:
$ pip list
Pour lister les différentes versions disponibles d'un même paquet dans le cas de pip >= 9.0
$ pip install docker-compose==
Pour les version antérieures de pip, donner en argument une version inexistante
$ pip install docker-compose==toto
Pour spécifier des critères sur les versions
$ pip install --user docker-compose==1.8.1
===== Troubleshooting / dépannage =====
Lors de l'utilisation de **pip3 search**, un message d'erreur est retourné:
ERROR: XMLRPC request failed [code: -32500]
RuntimeError: PyPI's XMLRPC API is currently disabled due to unmanageable load and will be deprecated in the near future. See https://status.python.org/ for more information.
Ce mode de recherche de paquetages est désactivé suite a de trop nombreuses requêtes. Utiliser l'interface web https://pypi.org/
source: https://softbranchdevelopers.com/why-does-pip-search-lead-to-an-error-xmlrpc-request-failed/
===== Références =====
* http://sametmax.com/votre-python-aime-les-pip/
* https://stackoverflow.com/questions/4888027/python-and-pip-list-all-versions-of-a-package-thats-available#26664162