Dynamisches Importieren eines Moduls anhand seines vollständigen Pfads
In Python ist es möglich, ein Modul zu importieren, ohne seinen Namen im Voraus zu kennen, sondern nur sein vollständiger Weg. Diese Funktionalität ist in Situationen nützlich, in denen sich Module in verschiedenen Verzeichnissen befinden oder wenn der Modulname dynamisch generiert wird.
Lösung
Es gibt mehrere Ansätze zum dynamischen Importieren eines Moduls basierend auf seinem vollständigen Pfad:
Python 3.5 :
import importlib.util import sys # Define the full path to the module module_path = "/path/to/module.py" # Create a specification for the module spec = importlib.util.spec_from_file_location("module_name", module_path) # Create the module from the specification foo = importlib.util.module_from_spec(spec) # Add the module to the list of imported modules sys.modules["module_name"] = foo # Execute the module's code spec.loader.exec_module(foo) # Access a class from the imported module foo.MyClass()
Python 3.3 und 3.4:
from importlib.machinery import SourceFileLoader # Define the full path to the module module_path = "/path/to/module.py" # Create a SourceFileLoader object foo = SourceFileLoader("module_name", module_path).load_module() # Access a class from the imported module foo.MyClass()
Python 2:
import imp # Define the full path to the module module_path = "/path/to/module.py" # Import the module using imp.load_source() foo = imp.load_source('module_name', module_path) # Access a class from the imported module foo.MyClass()
Bitte beachten Sie, dass dies nicht die einzigen Optionen sind und je nach Ihren spezifischen Anforderungen auch andere Methoden verfügbar sein können Python-Version.
Das obige ist der detaillierte Inhalt vonWie kann ich ein Python-Modul mithilfe seines vollständigen Pfads dynamisch importieren?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!