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.
Amerika_befreie_uns hat geschrieben: ↑Samstag 30. November 2019, 08:49
Ich bekomme diesen Quelllcode leide nicht mit Python3 zum laufen und exex ... in ... habe ich auch noch nie gesehen.
'exec' ist eine der regulären Builtin-Funktionen von Python und wird in der offiziellen Dokumentation erklärt (https://docs.python.org/3/library/functions.html#exec). Man braucht es zugegeben nicht so häufig, nach dem systematischen Lernen von Python sollte es aber zumindest vage bekannt sein. Jedenfalls: Das sieht merkwürdig aus und die Zeile, die 'exec' enthält, ist syntaktisch inkorrekt.
Zuletzt geändert von nezzcarth am Samstag 30. November 2019, 09:38, insgesamt 3-mal geändert.
ich weiß was exec ist, allerdings nicht, wie man das 'in dict " in python3 übersetzt.
Ich habe exec(self._modules[fullname]) in new_module.__dict__ verwendet allerdings tritt ein Fehler auf, wenn ich das Metamodul laden möchte.
`imp.new_module()` sollte man auch nicht mehr verwenden. Die Funktion ist „deprecated“. Das ganze Modul ist eher nicht mehr zu empfehlen. Um Modulobjekte zu erstellen ist `types.ModuleType` da.
„All religions are the same: religion is basically guilt, with different holidays.” — Cathy Ladman
ich bin zwar jetzt ein Stück weiter, allerdings kann ich nur eine Library importieren:
```
modules = {"libpbatch" : """print("sourcecode of my module")""",
"config" : """print("sourcecode of my variables")""",
}
sys.meta_path.insert(0, StringImporter(modules))
```
ich kann jetzt libpbatch importieren, aber nicht config, sieht so aus als kann ich immer nur eine Modul im Programm aufrufen.
In 2.7 funktioniert es einwandfrei.
`imp.new_module()` sollte man auch nicht mehr verwenden. Die Funktion ist „deprecated“. Das ganze Modul ist eher nicht mehr zu empfehlen. Um Modulobjekte zu erstellen ist `types.ModuleType` da.
Ja, habe ich schon längst gemacht. Leider funktioniert das Laden weiterer Module nicht mit Python3.