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 Post-Installationsskript 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 Post-Installationsskripts 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!