====== 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