Forum: PC-Programmierung Abhänigkeiten automatisch finden (python in Initramfs)


Announcement: there is an English version of this forum on EmbDev.net. Posts you create there will be displayed on Mikrocontroller.net and EmbDev.net.
von Rolf C. (Gast)


Bewertung
0 lesenswert
nicht lesenswert
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?

von Jim M. (turboj)


Bewertung
0 lesenswert
nicht lesenswert
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
von Εrnst B. (ernst)


Bewertung
-1 lesenswert
nicht lesenswert
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?

von Rolf M. (rmagnus)


Bewertung
-1 lesenswert
nicht lesenswert
Ε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.

von Εrnst B. (ernst)


Bewertung
-1 lesenswert
nicht lesenswert
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.

von MaWin (Gast)


Bewertung
0 lesenswert
nicht lesenswert
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.

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.