Dynamisches Importieren eines Moduls aus einem angegebenen Pfad
In Python erfolgt das Importieren eines Moduls normalerweise durch Angabe seines Namens. Was aber, wenn Sie ein Modul aus einer bestimmten Datei importieren müssen, unabhängig von seinem Speicherort im Dateisystem?
Lösung:
Um ein Modul basierend auf dynamisch zu importieren Um den vollständigen Pfad zu erreichen, können Sie eine der folgenden Techniken verwenden:
Python 3.5 (Empfohlen):
import importlib.util import sys spec = importlib.util.spec_from_file_location("module.name", "/path/to/file.py") foo = importlib.util.module_from_spec(spec) sys.modules["module.name"] = foo spec.loader.exec_module(foo) foo.MyClass() # Access a class within the module
Python 3.3 und 3.4:
from importlib.machinery import SourceFileLoader foo = SourceFileLoader("module.name", "/path/to/file.py").load_module() foo.MyClass() # Access a class within the module
Python 2:
import imp foo = imp.load_source('module.name', '/path/to/file.py') foo.MyClass() # Access a class within the module
Beachten Sie, dass diese Methoden praktische Optionen zum Importieren kompilierter Python-Dateien und DLLs bieten
Zusätzlicher Hinweis:
Es ist erwähnenswert, dass dieser Ansatz besonders nützlich ist, wenn mit dynamisch generierten Modulen oder Modulen gearbeitet wird, die in keinem der Standards installiert sind Python-Pfade.
Das obige ist der detaillierte Inhalt vonWie kann ich ein Python-Modul dynamisch aus einem bestimmten Dateipfad importieren?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!