load_module pkgutil не загружает модуль с зависимостями - PullRequest
0 голосов
/ 19 января 2012

У меня есть следующая структура файла проекта Python:

/main.py
/functions/func1.py
/functions/func2.py
/functions/serv_func.py

Main.py работает с pkgutil.Он использует функцию load_module (name), где name может быть func1, func2 или serv_func.В Func1.py нет никаких операторов import, и load_module (func1) прекрасно работает для него.Func2.py имеет «import serv_func», а load_module (func2) вызывает исключение «Нет модуля с именем serv_func».Я просто потерялся во всех этих пространствах имен, модулях и импорте.Я даже не знаю, где проблема.Почему он не видит serv_func при загрузке func2?

Edit1

main.py:

import functions
import pkgutil

def usable_modules(package):
    modules = pkgutil.iter_modules(package.__path__)
    usable = []
    for importer, name, ispkg in modules:
        print importer, name, ispkg
        module = pkgutil.find_loader('{0}.{1}'.format(package.__name__, name)).\
                                                             load_module(name)
        if hasattr(module, 'CHOOSABLE') and module.CHOOSABLE:
            usable.append(module)
    return usable

usable_modules(functions)
...