Mengimport Modul Secara Dinamik Memandangkan Laluan Penuhnya
Dalam Python, adalah mungkin untuk mengimport modul tanpa mengetahui namanya terlebih dahulu tetapi hanya laluan penuhnya. Fungsi ini berguna dalam situasi di mana modul terletak dalam direktori yang berbeza atau apabila nama modul dijana secara dinamik.
Penyelesaian
Terdapat beberapa pendekatan untuk mengimport modul secara dinamik berdasarkan laluan penuhnya:
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 dan 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()
Sila ambil perhatian bahawa ini bukan satu-satunya pilihan, dan kaedah lain mungkin tersedia bergantung pada keperluan khusus anda dan versi Python.
Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Mengimport Modul Python Secara Dinamik Menggunakan Laluan Penuhnya?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!