webentwicklung-frage-antwort-db.com.de

Unterschied zwischen 'python setup.py install' und 'pip install'

Ich habe ein externes Paket, das ich aus einer tar-Datei in mein python virtualenv installieren möchte. Wie installiere ich das Paket am besten?

Ich habe zwei Möglichkeiten entdeckt, die dies ermöglichen:

  1. Extrahieren Sie die tar-Datei und führen Sie dann python setup.py install innerhalb des extrahierten Verzeichnisses.
  2. pip install packagename.tar.gz aus Beispiel 7 in https://pip.pypa.io/en/stable/reference/pip_install/#examples

Ist, wenn es einen Unterschied gibt, sie auf diese zwei Arten zu tun.

77
user2125465

An der Oberfläche machen beide dasselbe: Wenn Sie entweder python setup.py install Oder pip install <PACKAGE-NAME> Ausführen, wird Ihr python) -Paket mit minimalem Aufwand für Sie installiert.

Die Verwendung von pip bietet jedoch einige zusätzliche Vorteile, die die Verwendung wesentlich angenehmer machen.

  • pip lädt automatisch alle Abhängigkeiten für ein Paket für Sie herunter. Wenn Sie dagegen setup.py Verwenden, müssen Sie Abhängigkeiten häufig manuell suchen und herunterladen, was mühsam und frustrierend sein kann.
  • pip verfolgt verschiedene Metadaten, mit denen Sie Pakete mit einem einzigen Befehl einfach deinstallieren und aktualisieren können: pip uninstall <PACKAGE-NAME> und pip install --upgrade <PACKAGE-NAME>. Wenn Sie dagegen ein Paket mit setup.py Installieren, müssen Sie ein Paket manuell löschen und von Hand warten, wenn Sie es entfernen möchten, was potenziell fehleranfällig sein kann.
  • Sie müssen Ihre Dateien nicht mehr manuell herunterladen. Wenn Sie setup.py Verwenden, müssen Sie die Website der Bibliothek besuchen, herausfinden, wo Sie sie herunterladen, die Datei extrahieren, setup.py Ausführen ... Im Gegensatz dazu durchsucht pip automatisch das Python Package Index (PyPi), um festzustellen, ob das Paket dort vorhanden ist, und um das Paket automatisch herunterzuladen, zu extrahieren und zu installieren. Mit wenigen Ausnahmen kann fast jede einzelne wirklich nützliche Python Bibliothek auf PyPi gefunden werden.
  • mit pip können Sie leicht zu installieren Räder, das ist der neue Standard der Python Distribution. Weitere Informationen zu Rädern .
  • pip bietet zusätzliche Vorteile, die sich gut in die Verwendung von virtualenv integrieren lassen. Dies ist ein Programm, mit dem Sie mehrere Projekte ausführen können, für die widersprüchliche Bibliotheken und Python Versionen auf Ihrem Computer erforderlich sind. Mehr Infos .
  • pip wird standardmäßig mit Python ab Python 2.7.9 in der Python 2.x-Reihe und als von Python 3.4.0 in der Python 3.x-Reihe, wodurch die Verwendung noch einfacher wird.

Verwenden Sie also im Grunde pip. Es werden nur Verbesserungen gegenüber der Verwendung von python setup.py install Angeboten.


Wenn Sie eine ältere Version von Python verwenden, kein Upgrade durchführen können und kein pip installiert haben, finden Sie weitere Informationen zum Installieren von pip unter den folgenden Links:

pip benötigt an sich kein Tutorial. In 90% der Fälle ist der einzige Befehl, den Sie wirklich benötigen, pip install <PACKAGE-NAME>. Das heißt, wenn Sie mehr darüber erfahren möchten, was genau Sie mit pip tun können, lesen Sie:

Es wird auch allgemein empfohlen, pip und virtualenv zusammen zu verwenden. Wenn Sie ein Anfänger von Python sind, ist es meiner Meinung nach in Ordnung, zunächst nur pip zu verwenden und Pakete global zu installieren, aber schließlich sollten Sie zur Verwendung von virtualenv übergehen, wenn Sie ernstere Projekte angehen.

Wenn Sie mehr über die gemeinsame Verwendung von pip und virtualenv erfahren möchten, lesen Sie:

82
Michael0x2a

python setup.py install ist das Analogon von make install: Es ist eine eingeschränkte Möglichkeit, Dateien zu kompilieren und in Zielverzeichnisse zu kopieren. Dies bedeutet nicht, dass dies der beste Weg ist, um Software wirklich auf Ihrem System zu installieren.

pip ist ein Paketmanager, der Pakete wie bekannte Paketmanager installieren, aktualisieren, auflisten und deinstallieren kann, einschließlich: dpkg, apt, yum, urpmi, ports etc. Unter der Haube läuft es python setup.py install, aber mit spezifischen Optionen, um zu steuern, wie und wo Dinge installiert werden.

Zusammenfassend: Verwenden Sie pip.

16
Éric Araujo