koddla

Yazılımcıları bilgi ile güçlendirir.

Python’da yolu belirtilen bir modül nasıl import edilir?

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)

Bir cevap yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir

Back to top