setup.py: callback nach installation?

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Antworten
Benutzeravatar
jens
Moderator
Beiträge: 8483
Registriert: Dienstag 10. August 2004, 09:40
Wohnort: duisburg
Kontaktdaten:

Samstag 15. September 2018, 11:04

Ich hab nach eine Möglichkeit gesucht, nach dem installieren code auszuführen. Mein Ziel: Nach dem installieren (in ein virtualenv) möchte ich gern starter für linux bzw. Verknüpfung für Windows erstellen... (Ins root vom virtualenv)

Meine bisherige Lösung sieht so aus:

Code: Alles auswählen

from setuptools.command.develop import develop
from setuptools.command.install import install

#...


def after_install_callback(bin_dir):
    """
    :param bin_dir: e.g.: /home/<username>/DjangoForRunnersEnv/bin

    Note: print outputs can only be seen in "--verbose" mode!
    """
    print("\nafter_install_callback()", file=sys.stderr)

    print("*** script_dir:", bin_dir)


class CustomInstallCommand(install):
    """
    e.g.: ./setup.py install --verbose
    """

    def run(self):
        super().run()
        after_install_callback(self.install_scripts)


class CustomDevelopCommand(develop):
    """
    e.g.: pip install --verbose -e .
    """
    def run(self):
        super().run()
        after_install_callback(self.script_dir)


setup(
    #...
    cmdclass={
        'install': CustomInstallCommand,  # normal install e.g.: ./setup.py install
        'develop': CustomDevelopCommand,  # setuptools "develop mode" e.g.: pip install -e .
    },
    #...
)
Jemand eine bessere Idee?

CMS in Python: http://www.pylucid.org
GitHub | Open HUB | Xing | Linked in
Bitcoins to: 1JEgSQepxGjdprNedC9tXQWLpS424AL8cd
__deets__
User
Beiträge: 3477
Registriert: Mittwoch 14. Oktober 2015, 14:29

Samstag 15. September 2018, 11:19

Ich benutze console scripts entry points: https://python-packaging.readthedocs.io ... ntry-point
Benutzeravatar
jens
Moderator
Beiträge: 8483
Registriert: Dienstag 10. August 2004, 09:40
Wohnort: duisburg
Kontaktdaten:

Samstag 15. September 2018, 21:26

Die werden aber nicht nach der installation ausgeführt, sondern packen nur script dateien ausführbar ins "bin" bzw. "Script" Verzeichnis.

Ich möchte code direkt bei der installation ausführen ;)

CMS in Python: http://www.pylucid.org
GitHub | Open HUB | Xing | Linked in
Bitcoins to: 1JEgSQepxGjdprNedC9tXQWLpS424AL8cd
__deets__
User
Beiträge: 3477
Registriert: Mittwoch 14. Oktober 2015, 14:29

Samstag 15. September 2018, 21:43

So wie ich dich verstanden habe, wolltest du Code ausführen um Skripte zu erzeugen. Wenn das nicht dein Ziel war, was dann?
Benutzeravatar
jens
Moderator
Beiträge: 8483
Registriert: Dienstag 10. August 2004, 09:40
Wohnort: duisburg
Kontaktdaten:

Dienstag 18. September 2018, 11:47

Ja, nur der code soll *bei* der Installation direkt ausgeführt werden. Nicht manuell *nach* der Installation ;)

CMS in Python: http://www.pylucid.org
GitHub | Open HUB | Xing | Linked in
Bitcoins to: 1JEgSQepxGjdprNedC9tXQWLpS424AL8cd
__deets__
User
Beiträge: 3477
Registriert: Mittwoch 14. Oktober 2015, 14:29

Dienstag 18. September 2018, 12:16

Wird er doch. Also, nach der Installation hast du Konsole-Skripte. Oder verstehe ich immer noch nicht was du meinst?
Benutzeravatar
__blackjack__
User
Beiträge: 1220
Registriert: Samstag 2. Juni 2018, 10:21

Dienstag 18. September 2018, 12:33

@__deets__: Diese Skripte die man nach der Installation hat sollen *während* der Installation schon aufgerufen/ausgeführt werden. Also zum Beispiel ein Update/Migrationsskript das installiert und dann auch gleich ausgeführt wird. So habe ich das jedenfalls verstanden.
“Pets are always a great help in times of stress. And in times of starvation too, o'course.” — Terry Pratchett, Small Gods
__deets__
User
Beiträge: 3477
Registriert: Mittwoch 14. Oktober 2015, 14:29

Dienstag 18. September 2018, 12:46

Ahhhh. Da helfen die natürlich nicht.
Benutzeravatar
jens
Moderator
Beiträge: 8483
Registriert: Dienstag 10. August 2004, 09:40
Wohnort: duisburg
Kontaktdaten:

Dienstag 18. September 2018, 13:57

Du hast es erfasst BlackJack ;)

CMS in Python: http://www.pylucid.org
GitHub | Open HUB | Xing | Linked in
Bitcoins to: 1JEgSQepxGjdprNedC9tXQWLpS424AL8cd
Antworten