Moin,
ich habe ein Pythonprogramm, das aus mehreren Dateien besteht. Das Hauptskript importiert diese dann.
Nun bräuchte ich leider aber mein gesamtes Programm als ein einzelnes Pythonskript. Heißt, ich möchte nur eine .py-Datei (fragt einfach nicht wieso, das ist kompliziert und nicht relevant).
Ich würde also gerne ein Modul importieren, aus dem Quellcode heraus, den ich als String vorliegen habe.
Die importlib-Bibliothek hat unter importlib.abc.InspectLoader eine Methode source_to_code(). Damit kann man doch sicherlich arbeiten. Leider habe ich mit importlib bisher nicht viel Erfahrung gemacht. Besagte Funktion gibt ein code-Objekt wieder. Mit welchen weiteren Methoden könnte ich dies dann importieren?
Die zwei offensichtlichen Alternativen kommen für mich leider nicht infrage:
- Den Quellcode aus dem String in eine temporäre Datei schreiben und von da importieren
- Den Quellcode einfach so in das Hauptskript kopieren (ich importiere mehrere meiner eigenen Module, und einige haben Methoden mit gleichen Namen)
Meine Frage also nochmal kurzgefasst: Anstatt ein Modul aus einer anderen Pythondatei zu importieren, möchte ich es aus dem Inhalt jener Pythondatei importieren, der als String vorliegt, anstatt in einer separaten Datei.