diff --git a/leapp/repository/__init__.py b/leapp/repository/__init__.py index b47af3e71..10fe0cd64 100644 --- a/leapp/repository/__init__.py +++ b/leapp/repository/__init__.py @@ -2,6 +2,7 @@ import os import pkgutil import sys +import importlib.util from leapp.exceptions import RepoItemPathDoesNotExistError, UnsupportedDefinitionKindError from leapp.models import get_models, resolve_model_references @@ -166,7 +167,10 @@ def _load_modules(self, modules, prefix): directories = [os.path.join(self._repo_dir, os.path.dirname(module)) for module in modules] prefix = prefix + '.' if not prefix.endswith('.') else prefix for importer, name, ispkg in pkgutil.iter_modules(directories, prefix=prefix): - importer.find_module(name).load_module(name) + spec = importer.find_spec(name) + module = importlib.util.module_from_spec(spec) + sys.modules[name] = module + spec.loader.exec_module(module) def serialize(self): """ diff --git a/leapp/repository/actor_definition.py b/leapp/repository/actor_definition.py index 2b5df1ab9..f0b86a926 100644 --- a/leapp/repository/actor_definition.py +++ b/leapp/repository/actor_definition.py @@ -193,7 +193,10 @@ def load(self): path = os.path.abspath(os.path.join(self._repo_dir, self.directory)) for importer, name, is_pkg in pkgutil.iter_modules((path,)): if not is_pkg: - self._module = importer.find_module(name).load_module(name) + spec = importer.find_spec(name) + module = importlib.util.module_from_spec(spec) + sys.modules[name] = module + spec.loader.exec_module(module) break def discover(self):