Ci-dessous, les différences entre deux révisions de la page.
Les deux révisions précédentes Révision précédente Prochaine révision | Révision précédente | ||
python:pip [2022/11/04 10:00] marclebrun [Configuration] |
python:pip [2023/10/07 06:45] (Version actuelle) marclebrun [Mettre à jour tous les packages] |
||
---|---|---|---|
Ligne 26: | Ligne 26: | ||
# exemple : | # exemple : | ||
For variant 'global', will try loading 'C:\ProgramData\pip\pip.ini' | For variant 'global', will try loading 'C:\ProgramData\pip\pip.ini' | ||
- | For variant 'user', will try loading 'C:\Users\john.doe\pip\pip.ini' | + | For variant 'user', will try loading 'C:\Users\toto\pip\pip.ini' |
- | For variant 'user', will try loading 'C:\Users\john.doe\AppData\Roaming\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' | For variant 'site', will try loading 'C:\Program Files\Python310\pip.ini' | ||
</code> | </code> | ||
Aucun de ces fichiers n'existait, j'ai donc créé | Aucun de ces fichiers n'existait, j'ai donc créé | ||
- | **C:\Users\john.doe\pip\pip.ini** et j'y ai mis ceci : | + | **C:\Users\toto\pip\pip.ini** et j'y ai mis ceci : |
<code ini> | <code ini> | ||
Ligne 67: | Ligne 67: | ||
</code> | </code> | ||
- | S'il y a une erreur de vérification de certificat SSL (SSLCertVerificationError), ajouter ces options : | + | 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 : | ||
<code bash> | <code bash> | ||
pip install --trusted-host pypi.org --trusted-host pypi.python.org --trusted-host files.pythonhosted.org <nom-du-package> | pip install --trusted-host pypi.org --trusted-host pypi.python.org --trusted-host files.pythonhosted.org <nom-du-package> | ||
+ | </code> | ||
+ | |||
+ | Dans un environnement virtuel, j'ai donc ajouté un fichier **pip.ini** dans le dossier **venv** | ||
+ | avec le contenu suivant : | ||
+ | |||
+ | <code ini> | ||
+ | [global] | ||
+ | trusted-host = | ||
+ | pypi.org | ||
+ | pypi.python.org | ||
+ | files.pythonhosted.org | ||
</code> | </code> | ||
Ligne 89: | Ligne 103: | ||
<code bash> | <code bash> | ||
- | pip list --outdated | + | pip list -o |
</code> | </code> | ||
Ligne 97: | Ligne 111: | ||
pip install <nom-du-package> -U | pip install <nom-du-package> -U | ||
</code> | </code> | ||
- | |||
===== Requirements.txt ===== | ===== Requirements.txt ===== | ||
Ligne 106: | Ligne 119: | ||
<code bash> | <code bash> | ||
source venv/bin/activate | source venv/bin/activate | ||
- | pip freeze > requirements.txt | + | (venv) pip freeze > requirements.txt |
</code> | </code> | ||
Ligne 113: | Ligne 126: | ||
<code bash> | <code bash> | ||
- | source venv/bin/activate | + | (venv) pip install -r requirements.txt |
- | pip install -r requirements.txt | + | </code> |
+ | |||
+ | ===== 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 : | ||
+ | |||
+ | <code bash> | ||
+ | (venv) pip freeze | cut -d'=' -f1 | ||
+ | </code> | ||
+ | |||
+ | Il ne reste plus qu'à fournir cette liste à **pip install -U** et le tour | ||
+ | est joué : | ||
+ | |||
+ | <code bash> | ||
+ | (venv) pip freeze | cut -d'=' -f1 | xargs -n1 pip install -U | ||
+ | </code> | ||
+ | |||
+ | Ensuite si tout fonctionne correctement, on peut recréer un nouveau | ||
+ | fichier **requirements.txt** | ||
+ | |||
+ | <code bash> | ||
+ | (venv) pip freeze > requirements.txt | ||
</code> | </code> | ||