[PYTHON] Weißt du es nicht Befehl pip

Von häufig verwendeten Befehlen bis hin zu komplizierten Befehlen werden für jeden Anwendungsfall eingeführt.

Fall 1. Abhängigkeitspflege

Das Skript funktioniert aufgrund eines Problems mit den Paketabhängigkeiten nicht ...

(1) Überprüfen Sie, ob Abhängigkeitsprobleme vorliegen.

$ pip check
#Wenn es keine Probleme mit den Paketabhängigkeiten gibt,
# No broken requirements found.
#Wird ausgegeben.

(2) Überprüfen Sie nach Bestätigung der erforderlichen Version des Pakets die verfügbare Version.

$ pip install <package>==
# ERROR: Could not find a version that satisfies the requirement <package>== (...
#Es wird ein Fehler ausgegeben, und Sie können die verfügbare Paketversion überprüfen.

(3) Installieren Sie unter Angabe der Version

$ pip install <package>==<version>

#Wenn Sie auf dem neuesten Stand sein möchten
$ pip install -U <package>
#Wenn Sie weniger als eine bestimmte Version auf die neueste Version aktualisieren möchten
$ pip install -U "<package> < <version>" #Ungleichheit<Ich benutze.

Überprüfen Sie die installierten Paketabhängigkeiten

Verwenden Sie show, um die Abhängigkeiten zusammen mit den Paketdetails anzuzeigen.

$ pip show <package>

Sie können das pipdeptree -Paket verwenden, um Abhängigkeiten anzuzeigen, die Versionsinformationen enthalten.

$ pip install pipdeptree

# <package>Zeigt die von angeforderten Pakete und ihre Versionen an.
$ pipdeptree -p <packgage>
# <package>Anzeige des angeforderten Pakets und der angeforderten Version.
$ pipdeptree -r -p <packgage>

Überprüfen Sie die Details und Abhängigkeiten der nicht installierten Pakete

Sie können die Details der Pakete, die Sie nicht installiert haben, auch herausfinden, indem Sie PyPi wie folgt fragen.

import request
from pprint import pprint #Importieren für die Ausgabeformatierung

package = '<package>'
version = '<version>'
url = f'https://pypi.org/pypi/{package}/{version}/json'
#Wenn Sie die Version nicht angeben
# url = f'https://pypi.org/pypi/{package}/json'

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

Sie können die für das angegebene Paket erforderlichen Pakete wie folgt überprüfen.

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

Fall 2. Installieren Sie das Paket in einer Offline-Umgebung

Ich möchte "pip install " an dem mit "ssh" verbundenen Ziel installieren, aber das Verbindungsziel ist offline!

(1) Laden Sie zunächst die erforderlichen Pakete online direkt unter ". / Src" herunter (wenn Sie die Version angeben möchten, verwenden Sie " == ").

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

(2) Übertragen Sie ". / Src" mit "scp".

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

#Wenn die Kapazität groß ist, komprimieren Sie sie und senden Sie sie.
$ tar czf src.tar.gz src
$ scp -C ./src.tar.gz <user>@<host>:<path> 

(3) Geben Sie nach dem Verbinden mit ssh das Verzeichnis src ein. Die Installation ist mit dem folgenden Befehl abgeschlossen!

$ pip install <package (file name)> #Installieren Sie nacheinander aus dem aktuellen Verzeichnis.
# or 
$ pip install ./* #Installieren Sie alles auf einmal.

#Wenn Sie src komprimiert haben, dekomprimieren Sie es im Voraus.
$ tar xzf src.tar.gz

Dies und das von pip download

Laden Sie das Quellpaket herunter.

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

Laden Sie das Binärpaket herunter, indem Sie die Version und Plattform angeben.

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

Unten ist eine Referenzseite.

Fall 3. Ändern Sie das Speicherziel von "pip install"

Ich möchte ein bestimmtes Paket ausprobieren, aber ich möchte die globalen und lokalen Pips nicht verschmutzen. Nicht genug, um eine virtuelle Umgebung zu verwenden ...

(1) Geben Sie das Verzeichnis an und installieren Sie das Paket.

$ pip install -t <dir> <package>

(2) Durch Hinzufügen der folgenden Zeile zum Skript kann das Paket direkt unter "" verwendet werden.

import sys
sys.path.append(dirpath)

#So legen Sie den Pfad fest Teil 1
import os
dirpath = sys.path.append(os.path.join(os.path.dirname(__file__), '<dir>Relativer Pfad von'))
#So legen Sie den Pfad fest Teil 2
from pathlib import Path
dirpath = sys.path.append(str((Path(__file__).parent/'<dir>Relativer Pfad von').resolve()))
#So legen Sie den Pfad fest Teil 3
dirpath = '<dir>Absoluter Pfad'

Sie können es auch ausführen, indem Sie einen relativen Pfad in "dirpath" schreiben. Wenn Sie das geschriebene Skript jedoch von einem anderen Skript aus aufrufen möchten, müssen Sie "file" verwenden oder "dirpath" als absoluten Pfad angeben.

(3) Löschen Sie das Verzeichnis, wenn Sie das Paket nicht mehr benötigen.

$ rm -r <dir>

Ich möchte eine andere Version eines installierten Pakets ausprobieren

Wenn Sie das Skript in dem Verzeichnis "" ausführen, in dem Sie die Pakete installiert haben, werden die Pakete im "" bevorzugt importiert.

Wenn Sie das Skript außerhalb von

ausführen und eine andere Version des Pakets verwenden möchten, die bereits global oder lokal installiert ist, fügen Sie die folgende Zeile hinzu.

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

Das Paket wird bevorzugt aus dem ersten Pfad von "sys.path" gelesen. Durch Umkehren der Liste nach dem Hinzufügen eines neuen Pfads kann der hinzugefügte Pfad mit der höchsten Priorität gelesen werden.

Recommended Posts

Weißt du es nicht Befehl pip
Wenn Sie es nicht wissen, ist es gefährlich. Erklären Sie sorgfältig, wie Sie den Befehl xargs verwenden
Pip-Befehlssammlung
Defekter Pip-Befehl
Linux-Befehl (Basic Edition), der ab heute verwendet werden kann, wenn Sie wissen
Installieren Sie den Befehl pip
Was ist pip und wie benutzt du es?
Schreiben Sie Python nicht, wenn Sie es mit Python beschleunigen möchten
Tensorflow mit Raspeltorte. Wenn Sie mit pip stolpern, lösen Sie es mit virtualenv!
Wenn Sie nicht wissen, wie viele Argumente Sie haben, haben Sie 2 ** kwargs Argumente mit variabler Länge
[TensorFlow] Wenn Sie TensorBoard ausführen möchten, installieren Sie es mit pip.
So finden Sie heraus, wann Sie das Java-Installationsverzeichnis nicht kennen