From 9ae1db0bdcb1e9c4ecf70cc1cc7473a23eee97dc Mon Sep 17 00:00:00 2001 From: Lianmin Zheng Date: Wed, 25 Sep 2024 11:32:21 -0700 Subject: [PATCH] [Fix] Ignore import error (#1513) --- python/sglang/srt/model_executor/model_runner.py | 14 +++++++++++--- 1 file changed, 11 insertions(+), 3 deletions(-) diff --git a/python/sglang/srt/model_executor/model_runner.py b/python/sglang/srt/model_executor/model_runner.py index 5096257be6e..a88f06ed6aa 100644 --- a/python/sglang/srt/model_executor/model_runner.py +++ b/python/sglang/srt/model_executor/model_runner.py @@ -568,17 +568,25 @@ def import_model_classes(): package = importlib.import_module(package_name) for _, name, ispkg in pkgutil.iter_modules(package.__path__, package_name + "."): if not ispkg: - module = importlib.import_module(name) + try: + module = importlib.import_module(name) + except Exception as e: + logger.warning(f"Ignore import error when loading {name}. " f"{e}") + continue if hasattr(module, "EntryClass"): entry = module.EntryClass if isinstance( entry, list ): # To support multiple model classes in one module for tmp in entry: - assert tmp.__name__ not in model_arch_name_to_cls + assert ( + tmp.__name__ not in model_arch_name_to_cls + ), f"Duplicated model implementation for {tmp.__name__}" model_arch_name_to_cls[tmp.__name__] = tmp else: - assert entry.__name__ not in model_arch_name_to_cls + assert ( + entry.__name__ not in model_arch_name_to_cls + ), f"Duplicated model implementation for {entry.__name__}" model_arch_name_to_cls[entry.__name__] = entry return model_arch_name_to_cls