Heim >Backend-Entwicklung >Python-Tutorial >Wie kann ich Python-Module mithilfe ihrer vollständigen Dateipfade dynamisch importieren?

Wie kann ich Python-Module mithilfe ihrer vollständigen Dateipfade dynamisch importieren?

Patricia Arquette
Patricia ArquetteOriginal
2024-12-30 17:31:13652Durchsuche

How Can I Dynamically Import Python Modules Using Their Full File Paths?

Dynamisches Importieren von Modulen mit angegebenem vollständigen Pfad

Python-Module können in ein Skript importiert werden, indem ihre vollständigen Dateipfade angegeben werden. Mit dieser Methode können Sie Module laden, die möglicherweise nicht im Voraus bekannt sind oder sich außerhalb der Standardbibliothek befinden.

Module mit Importlib laden

In Python 3.5 und höher verwenden Sie importlib.util Modul:

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()

Laden von Modulen mit SourceFileLoader (Python 3.3-3.4)

Verwenden Sie in Python 3.3 und 3.4 SourceFileLoader von importlib.machinery:

from importlib.machinery import SourceFileLoader

foo = SourceFileLoader("module.name", "/path/to/file.py").load_module()
foo.MyClass()

Laden von Modulen mit imp (Python 2)

Für Python 2, Verwenden Sie das Imp-Modul:

import imp

foo = imp.load_source('module.name', '/path/to/file.py')
foo.MyClass()

Zusätzlich Hinweise

  • Der bereitgestellte Code geht davon aus, dass das Modul eine Klasse namens MyClass enthält.
  • Es gibt ähnliche Funktionen zum Importieren kompilierter Python-Dateien und DLLs.
  • Weitere Informationen finden Sie unter Weitere Informationen finden Sie im Python-Fehlerbericht: http://bugs.python.org/issue21436.

Das obige ist der detaillierte Inhalt vonWie kann ich Python-Module mithilfe ihrer vollständigen Dateipfade dynamisch importieren?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn