Benutzerdefiniertes Post-Installationsskript in Python-Setuptools
Frage:
Können wir a ausführen? Postinstallationsskript als Teil der Datei setuptools setup.py? Dieses Skript sollte automatisch ausgeführt werden, nachdem „python setup.py install local“ oder „pip install
Antwort:
Anforderung:
Beachten Sie, dass diese Lösung nur bei Installationen von Quelldistributionen aktiv ist ( zip, tarball) oder bei der Installation im bearbeitbaren Modus. Bei der Installation von Binärrädern (.whl) wird es nicht ausgeführt.
Transparente Lösung:
Um das gewünschte Verhalten zu implementieren, können wir die Datei setup.py ohne ändern Erstellen zusätzlicher Dateien. Wir müssen separate Szenarien für den Entwicklungs-/bearbeitbaren Modus und den Installationsmodus berücksichtigen:
1. Entwicklungsmodus:
Erstellen Sie eine PostDevelopCommand-Klasse, die setuptools.command.develop erweitert und Ihr Post-Installationsskript einschließt:
from setuptools import setup from setuptools.command.develop import develop class PostDevelopCommand(develop): def run(self): develop.run(self) # Your post-installation script or function can be called here
2. Installationsmodus:
Erstellen Sie eine PostInstallCommand-Klasse, die setuptools.command.install erweitert und Ihr Nachinstallationsskript einschließt:
from setuptools import setup from setuptools.command.install import install class PostInstallCommand(install): def run(self): install.run(self) # Your post-installation script or function can be called here
3. Integration mit setup.py:
Fügen Sie die folgenden Zeilen zu Ihrer setup()-Funktion in setup.py hinzu:
setup( ... cmdclass={ 'develop': PostDevelopCommand, 'install': PostInstallCommand, }, ... )
Dadurch wird die Ausführung Ihres Nachinstallationsskripts ermöglicht oder funktionieren automatisch bei der Installation von der Quelle oder im bearbeitbaren Modus.
Das obige ist der detaillierte Inhalt vonKönnen wir in Python setuptools ein Post-Installationsskript ausführen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!