From 7e2c06a60f0cdb3be31cc059ad5c0c99a9db3d95 Mon Sep 17 00:00:00 2001 From: YunLiu <55491388+KumoLiu@users.noreply.github.com> Date: Wed, 26 Jun 2024 16:23:58 +0800 Subject: [PATCH 1/3] fix #7880 Signed-off-by: YunLiu <55491388+KumoLiu@users.noreply.github.com> --- monai/utils/module.py | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/monai/utils/module.py b/monai/utils/module.py index 6f301d8067..f66bf2dd12 100644 --- a/monai/utils/module.py +++ b/monai/utils/module.py @@ -18,6 +18,7 @@ import re import sys import warnings +import importlib.util from collections.abc import Callable, Collection, Hashable, Mapping from functools import partial, wraps from importlib import import_module @@ -208,9 +209,11 @@ def load_submodules( ): if (is_pkg or load_all) and name not in sys.modules and match(exclude_pattern, name) is None: try: - mod = import_module(name) - importer.find_spec(name).loader.load_module(name) # type: ignore - submodules.append(mod) + mod_spec = importer.find_spec(name) + if mod_spec and mod_spec.loader: + mod = importlib.util.module_from_spec(mod_spec) + mod_spec.loader.exec_module(mod) + submodules.append(mod) except OptionalImportError: pass # could not import the optional deps., they are ignored except ImportError as e: From e191369c539ac4fcd072bef36c8248fed5b6b3b0 Mon Sep 17 00:00:00 2001 From: YunLiu <55491388+KumoLiu@users.noreply.github.com> Date: Wed, 26 Jun 2024 16:29:24 +0800 Subject: [PATCH 2/3] fix flake8 Signed-off-by: YunLiu <55491388+KumoLiu@users.noreply.github.com> --- monai/utils/module.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/monai/utils/module.py b/monai/utils/module.py index f66bf2dd12..bbff2aafdd 100644 --- a/monai/utils/module.py +++ b/monai/utils/module.py @@ -13,12 +13,12 @@ import enum import functools +import importlib.util import os import pdb import re import sys import warnings -import importlib.util from collections.abc import Callable, Collection, Hashable, Mapping from functools import partial, wraps from importlib import import_module From aa7ab5d8ea5e2d1cb39364516799b2c0c639b7b7 Mon Sep 17 00:00:00 2001 From: YunLiu <55491388+KumoLiu@users.noreply.github.com> Date: Wed, 26 Jun 2024 20:43:57 +0800 Subject: [PATCH 3/3] fix flake8 Signed-off-by: YunLiu <55491388+KumoLiu@users.noreply.github.com> --- monai/utils/module.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/monai/utils/module.py b/monai/utils/module.py index bbff2aafdd..4d28f8d986 100644 --- a/monai/utils/module.py +++ b/monai/utils/module.py @@ -209,7 +209,7 @@ def load_submodules( ): if (is_pkg or load_all) and name not in sys.modules and match(exclude_pattern, name) is None: try: - mod_spec = importer.find_spec(name) + mod_spec = importer.find_spec(name) # type: ignore if mod_spec and mod_spec.loader: mod = importlib.util.module_from_spec(mod_spec) mod_spec.loader.exec_module(mod)