[PYTHON] Tu ne le sais pas? commande pip

Des commandes fréquemment utilisées aux commandes complexes sont introduites pour chaque cas d'utilisation.

Cas 1. Prise en charge de la dépendance

Le script ne fonctionne pas en raison d'un problème avec les dépendances du package ...

(1) Vérifiez les problèmes de dépendance.

$ pip check
#S'il n'y a aucun problème avec les dépendances du package,
# No broken requirements found.
#Est sortie.

(2) Après avoir confirmé la version requise du package, vérifiez la version disponible.

$ pip install <package>==
# ERROR: Could not find a version that satisfies the requirement <package>== (...
#Une erreur est générée et vous pouvez vérifier la version de package disponible.

(3) Installer en spécifiant la version

$ pip install <package>==<version>

#Quand tu veux être à jour
$ pip install -U <package>
#Lorsque vous souhaitez mettre à jour vers la dernière version inférieure à une certaine version
$ pip install -U "<package> < <version>" #Inégalité<J'utilise.

Vérifier les dépendances des packages installés

Utilisez show pour voir les dépendances ainsi que les détails du package.

$ pip show <package>

Vous pouvez utiliser le package pipdeptree pour afficher les dépendances qui incluent des informations de version.

$ pip install pipdeptree

# <package>Affiche les packages demandés par et leurs versions.
$ pipdeptree -p <packgage>
# <package>Affichage du package qui demande et de la version demandée.
$ pipdeptree -r -p <packgage>

Vérifiez les détails et les dépendances des packages non installés

Vous pouvez également trouver les détails des packages que vous n'avez pas installés en demandant à PyPi comme suit.

import request
from pprint import pprint #Importer pour le formatage de sortie

package = '<package>'
version = '<version>'
url = f'https://pypi.org/pypi/{package}/{version}/json'
#Si vous ne spécifiez pas la version
# url = f'https://pypi.org/pypi/{package}/json'

json = requests.get(url).json()
pprint(json['info'])

Vous pouvez vérifier les packages requis par le package spécifié comme suit.

pprint(json['info']['requires_dist'])

Cas 2. Installez le package dans un environnement hors ligne

Je veux pip install <package> à la destination connectée avec ssh, mais la destination de connexion est hors ligne!

(1) Tout d'abord, téléchargez le package requis en ligne directement sous . / Src (si vous voulez spécifier la version, utilisez <package> == <version>).

$ pip download -d ./src <package>
# or
$ pip download -d ./src -r requirements.txt

(2) Transférez . / Src avec scp.

$ scp -r -C ./src <user>@<host>:<path>

#Si la capacité est importante, compressez-la et envoyez-la.
$ tar czf src.tar.gz src
$ scp -C ./src.tar.gz <user>@<host>:<path> 

(3) Après vous être connecté avec ssh, entrez dans le répertoire src. L'installation est terminée avec la commande suivante!

$ pip install <package (file name)> #Installez un par un à partir du répertoire actuel.
# or 
$ pip install ./* #Installez tout en même temps.

#Si vous avez compressé src, décompressez-le à l'avance.
$ tar xzf src.tar.gz

Ceci et celui de pip download

Téléchargez le package source.

$ pip download -d ./src --no-binary :all: <package>

Téléchargez le package binaire en spécifiant la version et la plateforme.

$ pip download -d ./src --only-binary :all: --platform <platform> --python-version <python_version> --implementation <implementation> --abi <abi> <package>

Ci-dessous une page de référence.

Cas 3. Changez la destination de sauvegarde de pip install

Je veux essayer un certain package, mais je ne veux pas polluer les pips mondiaux et locaux. Pas assez pour utiliser un environnement virtuel ...

(1) Spécifiez le répertoire et installez le package.

$ pip install -t <dir> <package>

(2) En ajoutant la ligne suivante au script, le paquet directement sous <dir> peut être utilisé.

import sys
sys.path.append(dirpath)

#Comment spécifier le chemin Partie 1
import os
dirpath = sys.path.append(os.path.join(os.path.dirname(__file__), '<dir>Chemin relatif de'))
#Comment spécifier le chemin Partie 2
from pathlib import Path
dirpath = sys.path.append(str((Path(__file__).parent/'<dir>Chemin relatif de').resolve()))
#Comment spécifier le chemin Partie 3
dirpath = '<dir>Chemin absolu'

Vous pouvez également l'exécuter en écrivant un chemin relatif dans dirpath, mais si vous voulez appeler le script écrit à partir d'un autre script, vous devez utiliser __file__ ou spécifier dirpath comme chemin absolu.

(3) Supprimez le répertoire lorsque vous n'avez plus besoin du package.

$ rm -r <dir>

Je souhaite essayer une version différente d'un package installé

Si vous exécutez le script dans le répertoire «

» où vous avez installé les paquets, les paquets dans «» seront importés de préférence.

Si vous exécutez le script en dehors de <dir> et que vous souhaitez utiliser une autre version du package qui est déjà installée globalement ou localement, ajoutez la ligne suivante.

sys.path = sys.path[::-1]

Le paquet est lu préférentiellement à partir du premier chemin de sys.path. En inversant la liste après avoir ajouté un nouveau chemin, le chemin ajouté peut être lu avec la priorité la plus élevée.

Recommended Posts