Ich habe versucht, mein Paket so zu konfigurieren, dass ein Skript während des Installationsprozesses ausgeführt wird. Daher habe ich geerbt von setuptools.command installieren und erstellt meine benutzerdefinierte Klasse ActionOnInstall
, um Sachen zu tun, wenn das Paket installiert ist. Diese Klasse wird über setsetools setup()
argument cmdclass
wie beschrieben aufgerufen. hier .
Ein minimales Beispiel einer solchen setup.py Datei sieht wie
aus %Vor%Erstellen des Pakets durch Ausführen von
%Vor% wird erfolgreich ausgeführt, führt jedoch keine in ActionOnInstall.run()
angegebenen Befehle aus. Rufen Sie diese setup.py direkt über
führt Befehle aus, die in ActionOnInstall.run()
angegeben sind.
Dann habe ich mich gefragt: Was ist der tatsächliche Unterschied dieser beiden Ansätze, ein Paket zu installieren? Ich weiß, wie andere Posts uns erzählen, Pip macht das Leben leichter in Bezug auf die Paketinstallation. Aber wie diese beiden Ansätze das Argument cmdclass
von setup()
anders behandeln, wird nicht erklärt. Daher würde ich es sehr schätzen, von euch zu hören.
pip führt python setup.py install
bei der Installation Ihres Pakets aus - es ändert nichts daran, wie Ihr Setup-Programm ausgeführt wird.
Der Grund, warum Sie keine Ausgabe sehen, ist, wie @phd erwähnt, dass pip standardmäßig die gesamte Ausgabe der setup.py
-Datei ausblendet, da die meisten der gedruckten Informationen bei der Ausführung von python setup.py install
für die meisten nicht nützlich sind Benutzer.
Sie können diese versteckte Ausgabe zusammen mit allem anderen Pip sehen, indem Sie die Option "--verbose" an pip install
:
Tags und Links python package pip installation setuptools