首页 > 解决方案 > 如何检查模块是否被导入

问题描述

我使用 numpy 和 scipy 进行数据分析。我想在我定义的函数中编写代码,以便在调用该函数时检查是否导入了 numpy,如果未导入,则应该导入它。

如何检查是否导入了任何模块,例如 numpy?

标签: pythonpython-3.xmodulepython-import

解决方案


您可以sys.modulessys模块中使用:

>>> import sys
>>> import numpy
>>> 'numpy' in sys.modules
True

所以你的功能可能是:

def is_imported(module):
    return module in sys.modules

True从评论中,如果您使用过,您还想返回

from skimage.morphology import watershed

您可以使用以下方法检查函数是否在当前命名空间中dir()

>>> 'watershed' in dir()
False
>>> from skimage.morphology import watershed
>>> 'watershed' in dir()
True

要使用字符串导入模块,您可以使用importlib.import_module()

>>> import importlib
>>> importlib.import_module('numpy')

推荐阅读