Mit from setuptools.command.install import install
kann ich einfach ein benutzerdefiniertes Skript nach der Installation ausführen, wenn ich python setup.py install
ausführen. Dies ist ziemlich trivial zu tun.
Momentan druckt das Skript nur Text, aber ich möchte, dass es Systemänderungen vornimmt, die bei der Installation eines neuen Pakets auftreten müssen - z. B. die vom Paket verwendete Datenbank sichern.
>Ich möchte ein Python-Rad für mein Paket generieren und es dann kopieren und auf einer Reihe von Deployment-Maschinen installieren. Mein benutzerdefiniertes Installationsskript wird jedoch nicht mehr auf dem Bereitstellungscomputer ausgeführt.
Was mache ich falsch? Ist das überhaupt möglich?
Die Installation von Python-Paketen (mit Hilfe von beliebigen Paketierungstools oder -formaten) soll darauf ausgerichtet sein, dieses Paket aus Python-Code nutzbar zu machen.
Die Bereitstellung, was Datenbankänderungen usw. beinhalten könnte, ist definitiv außerhalb des Geltungsbereichs und sollte von anderen Tools wie Fab, Salzstapel usw. gehandhabt werden.
Die Tatsache, dass etwas ziemlich trivial erscheint, bedeutet nicht, dass man es tun soll.
Das Risiko besteht darin, dass Sie Ihre Paketinstallation nur schwer wiederverwenden können, da sie durch andere Dinge, die nichts mit der reinen Paketinstallation zu tun haben, verwöhnt wird.
Die Option, sich in den Installationsprozess einzuklinken und die Umgebung zu modifizieren, wird von manchen sogar als Designfehler betrachtet, was zu großen Unannehmlichkeiten in Pythons Verpackungssituation führt - siehe Armin Roacher in Python-Verpackung: Hass, Hass, Hass überall , Kapitel" PTH: Das gescheiterte Design, das alles ermöglichte "
Tags und Links python pip setuptools python-wheel