Python3.8在导入任何内容时都会导入io

Python3.8在导入任何内容时都会导入io,python,python-3.8,Python,Python 3.8,我想在导入模块时跟踪正在进行的导入。(目标是禁止进口有害模块,但这不是问题的重点。)对于MCVE目的,假设我这样做: import builtins orig_import = builtins.__import__ def new_import(*args, **kwargs): print(args[0]) return orig_import(*args, **kwargs) builtins.__import__ = new_import import my_m

我想在导入模块时跟踪正在进行的导入。(目标是禁止进口有害模块,但这不是问题的重点。)对于MCVE目的,假设我这样做:

import builtins
orig_import = builtins.__import__


def new_import(*args, **kwargs):
    print(args[0])
    return orig_import(*args, **kwargs)


builtins.__import__ = new_import

import my_module
用Python≤ 3.7,它按预期工作,并打印
my_模块
以及导入的所有模块(以及这些模块导入的所有模块)。但是,在Python 3.8.0中,即使
my_模块
没有导入任何内容,我也会得到以下输出:

my_module
_io
_io

这两行代码是从哪里来的?我试着查看文档,但找不到任何有用的东西。

打印
args[1]['''.\u name\u'.]
显示模块
\u io
实际上被称为
\u freezed\u importlib\u external
。但我不知道该怎么办。几个小时前,我在模拟某个模块函数时看到了一个3.8行为很有趣的问题,可能是相关的?