我有以下一段代码,看来它可以导入与正在运行的脚本同名的软件包,但是它可以无限递归:
def import_non_local2(name, custom_name=None):
custom_name = custom_name or name
from importlib.util import find_spec, module_from_spec
spec = find_spec(name, sys.path[1:])
mod = module_from_spec(spec)
spec.name = custom_name
spec.loader.exec_module(mod)
whois_service = import_non_local2('whois', 'whois_service')
我正在尝试将代码从this answer转换为停止使用不推荐使用的imp
。