Ich habe einen Nachrichtenordner (Paket) mit __init__.py
Datei und ein weiteres Modul messages_en.py
drin. In __init__.py
wenn ich importieren messages_en
es funktioniert, aber __import__
schlägt mit „Import: Keine Modul namens messages_en“Wie kann ich ein Paket mit __import __() importieren, wenn der Paketname nur zur Laufzeit bekannt ist?
import messages_en # it works
messages = __import__('messages_en') # it doesn't ?
Früher dachte ich, ‚Import x‘ ist nur eine andere Art zu sagen, __import__('x')
+1 und Dank für Erklärung, aber könnten Sie beschreiben genau, warum Das Beispiel von OP funktioniert nicht? Er scheint zu versuchen, messages_en auf Nachrichten zu aliasieren, was (naiv zu mir) vernünftig erscheint. –
Wie 'wr' erklärt wurde, war es aufgrund der Ebene, und ich weiß, __import__ sollte normalerweise nicht verwendet werden, aber in diesem Fall muss ich Sprache aus einer Konfigurationsdatei dynamisch an Nachrichten lesen und diese Datei importieren –
Dieses Beispiel war sehr hilfreich, vor allem, wenn Sie versuchen, Module aus Unterverzeichnissen zu laden. Es half mir, meinen Fehler "Attribut nicht gefunden" zu beheben. – Carlos