如何检查是否已导入python模块?

如何检查是否已导入python模块?,python,Python,例如,我像导入json那样导入json,现在我想在代码的某个地方检查它是否已导入。它应该是这样的:已导入(模块名称) 我之所以问这个问题,是因为我试图理解pkgutil.walk\u packages()是如何工作的。它必须导入列出的模块,但由于某些原因,某些模块未导入。似乎我必须用一个单独的函数导入它们,但首先这个函数需要“知道”它作为参数获取的模块是否被导入 也有一些类似的问题,但我对答案并不满意。测试字典中的模块名称: import sys print("sys" in sys.modu

例如,我像导入json那样导入json,现在我想在代码的某个地方检查它是否已导入。它应该是这样的:
已导入(模块名称)

我之所以问这个问题,是因为我试图理解
pkgutil.walk\u packages()
是如何工作的。它必须导入列出的模块,但由于某些原因,某些模块未导入。似乎我必须用一个单独的函数导入它们,但首先这个函数需要“知道”它作为参数获取的模块是否被导入


也有一些类似的问题,但我对答案并不满意。

测试字典中的模块名称:

import sys

print("sys" in sys.modules) #True
print("datetime" in sys.modules) #False
print("json" in sys.modules) #False

如果您在文件顶部写入
import json
,那么您可以非常确定它已导入到该文件中。这并不意味着它将被导入任何地方(在其他文件中)。这可能是造成混乱的原因吗?或者,您正在试图弄清楚是否有任何一个包已被其他模块导入到某个地方?(如果是,为什么?)如果你想知道
pkgutil.walk_packages()
是如何工作的,为什么不呢?@deceze不,不是。我使用
walk_软件包导入模块(据我所知,它会动态导入模块),但列表中的某些模块似乎没有导入。我只是想弄明白为什么,那么你可能更想问一个关于这个的具体问题…?@deceze在问这个问题之前我已经问过了,但没有人回答…在交互模式下,所有人都返回
True
。这是怎么回事?@Foobard,尝试打开另一个命令行实例(或者您正在使用的其他实例)。我刚刚在我的终端(ver Python 3)中检查了它-datetime和json检查返回false我也刚刚在我的终端中检查了它,是的,现在它按预期工作。我想知道为什么它不在那个终点站。我100%确定我没有导入我检查过的模块。