Hi, wenn man seine superduper.py script in der Initramfs beim booten ausführen lassen möchte, wie geht man da systematisch vor? Also nicht trial&error. Gibt es da etwas das die Abhängigkeiten (wie apt-get install) automatisch auflöst, und in das Initramfs mit aufnimmt?
Mach aus dem Skript ein Executable: https://docs.python-guide.org/shipping/freezing/ Allerdings wird da so dermaßen fett, das man normalerweise lieber Shell Skripte benutzt.
:
Bearbeitet durch User
Rolf C. schrieb: > Gibt es da etwas das die Abhängigkeiten (wie apt-get install) > automatisch auflöst, kann es nicht wirklich geben... Python ist interpretiert, und nichts hindert den Programmierer daran was einzubauen wie Wenn Freitag der 13. und Vollmond, dann: "import irgendwas von irgendwo" ist jetzt "irgendwo" eine dependency oder nicht, oder hängt das davon ab, wann du dein image baust? was ist mit
1 | try: |
2 | import megafettes100GBpackage |
3 | except ImportError: |
4 | import minimalErsatzShim as megafettes100GBpackage |
Welches ist jetzt dependency und muss in das initramfs? Beides?
Εrnst B. schrieb: > Rolf C. schrieb: >> Gibt es da etwas das die Abhängigkeiten (wie apt-get install) >> automatisch auflöst, > > kann es nicht wirklich geben... Python ist interpretiert, und nichts > hindert den Programmierer daran was einzubauen wie Das hat doch nichts mit Python oder damit, dass das interpretiert ist, zu tun. Du kannst genauso gut in C ein Programm schreiben, das zur Laufzeit Hundert Plug-ins nachlädt oder irgendwelche großen Files braucht.
Rolf M. schrieb: > Du kannst genauso gut in C ein Programm Stimmt natürlich. Also zusammengefasst: Es ist beweisbar unmöglich ein unbekanntes Programm sicher so in die initramdisk (oder sonstwohin) zu packen, dass alle dependencies erfüllt sind.
Ich glaube hier wurde weniger nach einem mathematischen Beweis gefragt, sondern eher nach einem praktischen Vorgehen. sys.modules kann nützlich sein, wenn es darum geht, alle geladenen Module anzeigen zu lassen. Das kannst du in deinem Script zu einem günstigen Zeitpunkt ausgeben lassen. Was ein günstiger Zeitpunkt ist, musst du allerdings selbst wissen. Es muss ein Punkt sein, an dem alle Module geladen sind.
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.