pkgutil的load_module不会加载具有依赖项的模块

时间:2012-01-19 12:47:30

标签: python python-module python-import

我有以下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)引发异常'No module named serv_func'。我刚刚迷失在所有这些命名空间,模块和导入中。我甚至不知道问题出在哪里。加载func2时为什么看不到serv_func?

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)

0 个答案:

没有答案