Heim >Backend-Entwicklung >Python-Tutorial >Warum kann „__import__' Matplotlib-Submodule nicht vollständig importieren und wie kann ich das beheben?
Module aus String-Variablen mit „__import__“ importieren
Beim Versuch, bestimmte Submodule innerhalb der Matplotlib-Bibliothek (MPL) zu dokumentieren, kann dies der Fall sein notwendig, um diese Submodule aus Strings zu importieren. Allerdings kann die Verwendung der Funktion „__import__“ im Vergleich zu Standard-Importanweisungen zu unerwarteten Ergebnissen führen.
Problem:
Importieren eines Submoduls mit „__import__“ (z. B. __import__( 'matplotlib.text')) lädt den Inhalt des Submoduls nicht wie erwartet vollständig. Beim Vergleich der Liste der Attribute, die sowohl von „__import__“ als auch von einem regulären Import erhalten wurden, ist es offensichtlich, dass „__import__“ Basisdefinitionen von matplotlib zusammen mit überflüssigen Elementen enthält, aber entscheidende Klassen aus dem Ziel-Submodul fehlen.
Lösung:
Um ein Submodul aus einem String mit „__import__“ zu laden, geben Sie als zweites Argument eine leere Liste an (fromlist):
import matplotlib.text as text x = dir(text) i = __import__('matplotlib.text', fromlist='') y = dir(i)
Dieser überarbeitete Code lädt effektiv das gewünschte Submodul und liefert die erwartete Liste von Attributen.
Alternativ kann man in Python-Versionen 3.1 oder höher die importlib verwenden Modul:
import importlib i = importlib.import_module("matplotlib.text") y = dir(i)
Hinweise:
Das obige ist der detaillierte Inhalt vonWarum kann „__import__' Matplotlib-Submodule nicht vollständig importieren und wie kann ich das beheben?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!