例如,我无法导入子模块numpy.core.setup
,子模块numpy.distutils.msvc9compiler
和其他许多模块也是如此。
修改
好的,这是代码的一个片段。
from importlib import import_module
from pkgutil import walk_packages
import sys
import operator
def get_attr(module, attr):
return operator.attrgetter(attr.split('.', 1)[1])(module)
def isimported(module_name):
return module_name in sys.modules
def get_submodules(module_name):
submodules = {}
module = import_module(module_name)
for loader, name, is_pkg in walk_packages(module.__path__, module.__name__ + '.'):
if isimported(name):
submodules[name] = get_attr(module, name)
else:
try:
submodules[name] = __import__(name)
except ImportError:
pass
if __name__ == "__main__":
get_submodules('numpy')
答案 0 :(得分:0)
numpy/core/setup.py
并非旨在成为子模块。它是NumPy构建系统的一部分。它依赖于NumPy构建时才存在的东西,如果你尝试在实际安装的NumPy中导入它,它就会失败,因为它所依赖的东西不存在。