首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何列出导入的模块?

如何列出导入的模块?
EN

Stack Overflow用户
提问于 2011-02-01 09:50:29
回答 7查看 229.3K关注 0票数 190

如何枚举所有导入的模块?

例如,我想从下面的代码中获取['os', 'sys']

代码语言:javascript
复制
import os
import sys
EN

回答 7

Stack Overflow用户

回答已采纳

发布于 2011-02-01 09:54:54

代码语言:javascript
复制
import sys
sys.modules.keys()

仅获取当前模块的所有导入的近似方法是检查模块的globals()

代码语言:javascript
复制
import types
def imports():
    for name, val in globals().items():
        if isinstance(val, types.ModuleType):
            yield val.__name__

这不会返回本地导入,或者像from x import y这样的非模块导入。请注意,这将返回val.__name__,因此如果使用import module as alias,则获得原始模块名称;如果需要别名,则返回名称。

票数 219
EN

Stack Overflow用户

发布于 2013-10-15 23:17:10

找到sys.modulesglobals的交叉点

代码语言:javascript
复制
import sys
modulenames = set(sys.modules) & set(globals())
allmodules = [sys.modules[name] for name in modulenames]
票数 47
EN

Stack Overflow用户

发布于 2011-02-01 10:04:39

代码语言:javascript
复制
print [key for key in locals().keys()
       if isinstance(locals()[key], type(sys)) and not key.startswith('__')]
票数 12
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/4858100

复制
相关文章

相似问题

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