为什么不能导入一些python子模块?

2024-09-27 22:23:19 发布

您现在位置:Python中文网/ 问答频道 /正文

例如,我无法导入子模块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')

Tags: 模块namefromimportnumpygetreturnpackages
1条回答
网友
1楼 · 发布于 2024-09-27 22:23:19

numpy/core/setup.py不是设计成子模块的。它是NumPy构建系统的一部分。它依赖于只有在构建NumPy时才存在的东西,如果您尝试将它导入到实际安装的NumPy中,它就会失败,因为它所依赖的东西不在那里。你知道吗

相关问题 更多 >

    热门问题