首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >为什么不可能导入一些python子模块?

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

Stack Overflow用户
提问于 2017-08-31 22:51:45
回答 1查看 71关注 0票数 0

例如,我无法导入子模块numpy.core.setup,子模块numpy.distutils.msvc9compiler和许多其他模块也是如此。

编辑:

好的,这是代码的一个片段。

代码语言:javascript
复制
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')
EN

回答 1

Stack Overflow用户

发布于 2017-08-31 23:19:49

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

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/45991134

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档