2013-03-30 8 views
43

Ich habe ein externes Paket, das ich in meinem Python virtualenv aus einer TAR-Datei installieren möchte. Was ist der beste Weg, um das Paket zu installieren?Unterschied zwischen 'python setup.py install' und 'pip install'

Ich habe 2 Möglichkeiten gefunden, die es tun können: 1) Extrahieren Sie die TAR-Datei und führen Sie '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.

+2

Verwenden Sie 'pip'. Sie können Pakete damit deinstallieren. – Blender

+0

"Von der Quelle" wie in "VCS checkout" oder wie in "sdist"? – delnan

+0

Was "am besten" ist, hängt von Ihren Anforderungen ab! Haben Sie eine dieser Lösungen ausprobiert und haben sie in irgendeiner Weise fehlgeschlagen? Oder fragen Sie, was der Unterschied * zwischen diesen Ansätzen ist? –

Antwort

48

Auf der Oberfläche tun beide das gleiche: entweder python setup.py install oder pip install <PACKAGE-NAME> wird Ihr Python-Paket für Sie installieren, mit einem Minimum an Aufwand.

Allerdings bietet die Verwendung von Pip einige zusätzliche Vorteile, die es viel angenehmer machen, es zu verwenden.

  • pip wird automatisch alle Abhängigkeiten für ein Paket für Sie herunterladen. Im Gegensatz dazu müssen Sie, wenn Sie setup.py verwenden, häufig Abhängigkeiten manuell suchen und herunterladen, was mühsam ist und frustrierend sein kann.
  • pip verfolgt verschiedene Metadaten, mit denen Sie Pakete einfach mit einem einzigen Befehl 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 warten, wenn Sie es loswerden möchten, was möglicherweise fehleranfällig sein könnte.
  • Sie müssen Ihre Dateien nicht mehr manuell herunterladen. Wenn Sie setup.py verwenden, müssen Sie die Website der Bibliothek besuchen, herauszufinden, wo sie heruntergeladen werden, extrahieren Sie die Datei, führen Sie setup.py ... Im Gegensatz wird pip automatisch die Python Package Index (PyPi) suchen, um zu sehen, ob das Paket dort existiert, und wird das Paket automatisch herunterladen, extrahieren und installieren. Mit wenigen Ausnahmen kann fast jede wirklich nützliche Python-Bibliothek auf PyPi gefunden werden.
  • Pip wird Sie easily install Räder, die den neuen Standard der Python-Distribution ist. More info about wheels.
  • pip bietet zusätzliche Vorteile, die sich gut in die Verwendung von virtualenv integrieren, einem Programm, mit dem Sie mehrere Projekte ausführen können, die in Konflikt stehende Bibliotheken und Python-Versionen auf Ihrem Computer erfordern. More info.
  • pip wird standardmäßig mit Python ab Python 2.7.9 in der Python 2.x-Reihe und ab Python 3.4.0 in der Python 3.x-Reihe gebündelt, wodurch es noch einfacher zu verwenden ist.

Also im Grunde verwenden Sie Pip. Es bietet nur Verbesserungen gegenüber python setup.py install.


Wenn Sie eine ältere Version von Python verwenden, können nicht aktualisiert werden, und haben nicht pip installiert haben, können Sie weitere Informationen über Pip unter den folgenden Links Installation finden:

pip, von selbst, benötigt kein Tutorial. In 90% der Fälle ist der einzige Befehl, den Sie wirklich brauchen, pip install <PACKAGE-NAME>. Das heißt, wenn Sie in das Lernen mehr über die Details interessiert sind, was genau Sie mit pip tun können, finden Sie unter:

Es wird auch allgemein empfohlen, dass Sie zusammen pip und virtualenv verwenden. Wenn Sie ein Anfänger für Python sind, denke ich persönlich, es wäre in Ordnung, wenn Sie zuerst pip verwenden und Pakete global installieren, aber schließlich denke ich, dass Sie auf die Verwendung von virtualenv umsteigen sollten, wenn Sie ernsthaftere Projekte angehen.

Wenn Sie mehr über die Verwendung von Pip und virtualenv zusammen erfahren möchten, finden Sie unter:

8

python setup.py install ist das Analogon von make install: Es ist eine begrenzte Möglichkeit, Dateien zu Zielverzeichnissen zu kompilieren und zu kopieren. Dies bedeutet nicht, dass es der beste Weg ist, Software auf Ihrem System zu installieren.

pip ist ein Paket-Manager, die installieren, aktualisieren und deinstallieren Liste von Paketen, wie vertraut Paketmanager einschließlich: dpkg, apt, yum, urpmi, ports usw. Unter der Haube wird es python setup.py install laufen, aber mit bestimmten Optionen zu steuern, wie und wo die Dinge enden up installiert.

Zusammenfassend: Verwenden Sie pip.