webentwicklung-frage-antwort-db.com.de

Python setup.py im Vergleich zu install

Zwei Optionen in setup.py develop und install verwirren mich. Entsprechend site erstellt die Verwendung von develop einen speziellen Link zum Site-Paketverzeichnis.

Die Leute haben vorgeschlagen, dass ich python setup.py install für eine Neuinstallation und python setup.py develop nachdem Änderungen an der Setup-Datei vorgenommen wurden.

Kann jemand etwas Licht in die Verwendung dieser Befehle bringen?

284
Netro

python setup.py install Wird verwendet, um Pakete (normalerweise von Drittanbietern) zu installieren, die Sie nicht selbst entwickeln/ändern/debuggen werden.

Für Ihre eigenen Sachen möchten Sie zuerst Ihr Paket installieren und dann in der Lage sein, den Code häufig zu bearbeiten ohne das Paket jedes Mal neu installieren zu müssen - und genau das ist python setup.py develop Funktioniert: Das Paket (normalerweise nur ein Quellordner) wird so installiert, dass Sie Ihren Code nach der Installation in der (virtuellen) Umgebung bequem bearbeiten können und die Änderungen sofort wirksam werden.

Beachten Sie, dass die Verwendung von pip install . (Installieren) und pip install -e . (Installieren durch Entwickler) zur Installation von Paketen dringend empfohlen wird, da das direkte Aufrufen von setup.py Für viele Abhängigkeiten die falschen Aktionen ausführt. B. Vorabversionen und inkompatible Paketversionen abrufen oder die Deinstallation des Pakets mit pip erschweren.

393
Erik Allik

Aus der Dokumentation . Das develop installiert das Paket nicht, erstellt jedoch einen .Egg-link Im Bereitstellungsverzeichnis zurück zum Projektquellcodeverzeichnis.

Es ist also wie beim Installieren, aber anstatt in den site-packages Zu kopieren, wird ein symbolischer Link hinzugefügt (der .Egg-link Fungiert als symbolischer Multiplattform-Link).

Auf diese Weise können Sie den Quellcode bearbeiten und die Änderungen direkt anzeigen , ohne dass Sie bei jeder kleinen Änderung eine Neuinstallation vornehmen müssen . Dies ist nützlich, wenn Sie der Entwickler dieses Projekts sind, daher der Name develop. Wenn Sie nur das Paket einer anderen Person installieren, sollten Sie install verwenden.

100
ecerulm

Eine andere Sache, die die Leute vielleicht nützlich finden, wenn sie die develop -Methode verwenden, ist die --user Option zur Installation ohne Sudo. Ex:

python setup.py develop --user

anstatt von

Sudo python setup.py develop
15
Taylor