====== PIP ======
* Python Package Index (PyPi) : [[https://pypi.org/]]
===== Version =====
Afficher la version de pip :
pip -V
Mettre à jour pip :
pip install --upgrade pip
===== Configuration =====
Sous Windows, pour connaître l'emplacement du fichier de configuration de PIP :
pip config -v list
# exemple :
For variant 'global', will try loading 'C:\ProgramData\pip\pip.ini'
For variant 'user', will try loading 'C:\Users\toto\pip\pip.ini'
For variant 'user', will try loading 'C:\Users\toto\AppData\Roaming\pip\pip.ini'
For variant 'site', will try loading 'C:\Program Files\Python310\pip.ini'
Aucun de ces fichiers n'existait, j'ai donc créé
**C:\Users\toto\pip\pip.ini** et j'y ai mis ceci :
[global]
trusted-host =
mirror1.example.com
mirror2.example.com
===== Packages =====
Lister les packages installés :
pip list
Voir les infos sur un package installé :
pip show
Rechercher un package :
pip search
Installer un package :
pip install
S'il y a une erreur de vérification de certificat SSL (SSLCertVerificationError)
* Soit ajouter les **trusted-host** dans le fichier de configuration
* Soit les ajouter sur la ligne de commande, comme ci-dessous :
pip install --trusted-host pypi.org --trusted-host pypi.python.org --trusted-host files.pythonhosted.org
Dans un environnement virtuel, j'ai donc ajouté un fichier **pip.ini** dans le dossier **venv**
avec le contenu suivant :
[global]
trusted-host =
pypi.org
pypi.python.org
files.pythonhosted.org
Désinstaller un package :
pip uninstall
Désinstaller un package et ses dépendances en même temps (voir [[https://pypi.org/project/pip-autoremove/]]) :
pip install pip-autoremove
pip-autoremove
Lister les packages qui peuvent être mis à jour :
pip list -o
Mettre à jour un package :
pip install -U
===== Requirements.txt =====
Créer un fichier **requirements.txt** correspondant aux packages installés dans
le Virtual Environment en cours :
source venv/bin/activate
(venv) pip freeze > requirements.txt
Ensuite pour réinstaller le tout dans un nouvel environnement, il suffit d'avoir
le fichier **requirements.txt** et de taper :
(venv) pip install -r requirements.txt
===== Mettre à jour tous les packages =====
Pour mettre à jour tous les packages de l'environnement virtuel,
il faut fournir à **pip** une liste des packages comportant
uniquement les noms, sans les numéros de versions.
La commande suivante coupe chaque ligne que renvoie **pip freeze**
à chaque signe "=", afin de ne conserver que les noms :
(venv) pip freeze | cut -d'=' -f1
Il ne reste plus qu'à fournir cette liste à **pip install -U** et le tour
est joué :
(venv) pip freeze | cut -d'=' -f1 | xargs -n1 pip install -U
Ensuite si tout fonctionne correctement, on peut recréer un nouveau
fichier **requirements.txt**
(venv) pip freeze > requirements.txt
===== Erreur de certificat SSL =====
Source: [[https://stackoverflow.com/questions/25981703/pip-install-fails-with-connection-error-ssl-certificate-verify-failed-certi|StackOverflow]]
Dans le cas où une installation échoue à cause de **"CERTIFICATE_VERIFY_FAILED"**,
relancer la commande en indiquant les serveurs comme étant de confiance :
* pypi.org
* pypi.python.org
* files.pythonhosted.org
pip install --trusted-host pypi.org --trusted-host pypi.python.org --trusted-host files.pythonhosted.org nom_du_package
Et pour mettre à jour **pip** dans ces conditions :
pip install --upgrade --trusted-host pypi.org --trusted-host pypi.python.org --trusted-host files.pythonhosted.org pip setuptools