Python 3.5+ için:
import importlib.util
spec = importlib.util.spec_from_file_location("module.name", "/dosya/konumu/dosya.py")
foo = importlib.util.module_from_spec(spec)
spec.loader.exec_module(foo)
foo.MyClass()
Python 3.3 ve 3.4 için şunları kullanın:
from importlib.machinery import SourceFileLoader
foo = SourceFileLoader("module.name", "/dosya/konumu/dosya.py").load_module()
foo.MyClass()
(Python 3.4’te bu yöntem artık kaldırıldı.)
Python 2 için ise aşağıdakini kullanın:
import imp
foo = imp.load_source('module.name', '/dosya/konumu/dosya.py')
foo.MyClass()
Peki üst düzey modülünüz bir dosya değilse ve __init__.py içerecek şekilde bir klasörde paketlenmişse, o zaman ne yapacağız? Bu durumda Python 3.5+’ta aşağıdaki kod gereklidir (‘sys.modules’ ile başlayan eklenen satıra dikkat edin):
MODULE_PATH = "/path/to/your/module/__init__.py"
MODULE_NAME = "mymodule"
import importlib
import sys
spec = importlib.util.spec_from_file_location(MODULE_NAME, MODULE_PATH)
module = importlib.util.module_from_spec(spec)
sys.modules[spec.name] = module
spec.loader.exec_module(module)