445 Stimmen

Python setup.py develop vs install

Zwei Optionen in setup.py develop und install verwirren mich. Laut dieser Seite erstellt develop einen speziellen Link zum Verzeichnis site-packages.

Es wurde vorgeschlagen, dass ich python setup.py install für eine frische Installation verwende und python setup.py develop nachdem Änderungen an der Setup-Datei vorgenommen wurden.

Kann mir jemand etwas Licht auf die Verwendung dieser Befehle werfen?

647voto

Erik Kaplun Punkte 34929

python setup.py install wird verwendet, um (in der Regel externe) Pakete zu installieren, die Sie nicht selbst entwickeln/ändern/debuggen werden.

Für Ihre eigenen Sachen möchten Sie zunächst Ihr Paket installieren und dann den Code häufig bearbeiten können, ohne das Paket jedes Mal neu installieren zu müssen - und das ist genau das, was python setup.py develop macht: Es installiert das Paket (in der Regel nur einen Quellordner) so, dass Sie bequem Ihren Code bearbeiten können, nachdem es in der (virtuellen) Umgebung installiert wurde, und die Änderungen sofort wirksam werden.


Hinweis: Es wird dringend empfohlen, pip install . (reguläre Installation) und pip install -e . (Entwicklerinstallation) zu verwenden, da das direkte Aufrufen von setup.py viele Abhängigkeiten falsch behandelt, wie z.B. Vorabversionen und inkompatible Paketversionen herunterlädt oder das Paket mit pip schwer deinstallierbar macht.

Update:

Das Gegenstück zu

Der develop Ansatz für den neuesten python -m build Ansatz sieht folgendermaßen aus (wie):

Bildbeschreibung hier eingeben

156voto

RubenLaguna Punkte 17855

Von der Dokumentation. Das develop wird das Paket nicht installieren, sondern es wird einen .egg-link im Bereitstellungsverzeichnis zurück zum Projekt-Quellcodedirectory erstellen.

Also ist es wie eine Installation, aber anstatt es in die site-packages zu kopieren, fügt es einen symbolischen Link hinzu (der .egg-link fungiert als plattformübergreifender symbolischer Link).

Auf diese Weise können Sie den Quellcode bearbeiten und die Änderungen direkt sehen, ohne jedes Mal neu installieren zu müssen, wenn Sie eine kleine Änderung vornehmen. Dies ist nützlich, wenn Sie der Entwickler dieses Projekts sind, daher der Name develop. Wenn Sie nur das Paket eines anderen installieren, sollten Sie install verwenden

32voto

K.S. Punkte 2391

Ein weiteres nützliches Feature, das Benutzer möglicherweise finden, wenn sie die develop-Methode verwenden, ist die --user-Option zum Installieren ohne sudo. z.B.:

python setup.py develop --user

statt

sudo python setup.py develop

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X