我有以下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)