From 28d930ceb951054170345e4c3c51bdb09e9dd5c5 Mon Sep 17 00:00:00 2001 From: vikasreddy11 Date: Wed, 13 May 2026 12:31:01 +0530 Subject: [PATCH 1/2] fix: raise exception when specified reader is not installed in LoadImage --- monai/transforms/io/array.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/monai/transforms/io/array.py b/monai/transforms/io/array.py index aadd96763d..bac0739142 100644 --- a/monai/transforms/io/array.py +++ b/monai/transforms/io/array.py @@ -210,7 +210,7 @@ def __init__( try: self.register(the_reader(*args, **kwargs)) except OptionalImportError: - warnings.warn( + raise ImportError( f"required package for reader {_r} is not installed, or the version doesn't match requirement." ) except TypeError: # the reader doesn't have the corresponding args/kwargs From 0a9e990d00fe84c56eb4910f91ccac5a56e4e4eb Mon Sep 17 00:00:00 2001 From: vikasreddy11 Date: Wed, 13 May 2026 14:14:15 +0530 Subject: [PATCH 2/2] fix: make ImageWriter error message format-aware for install hints --- monai/data/image_writer.py | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) diff --git a/monai/data/image_writer.py b/monai/data/image_writer.py index cc6cdcdead..6c90df2d27 100644 --- a/monai/data/image_writer.py +++ b/monai/data/image_writer.py @@ -116,7 +116,18 @@ def resolve_writer(ext_name, error_if_not_found=True) -> Sequence: except Exception: # other writer init errors indicating it exists avail_writers.append(_writer) if not avail_writers and error_if_not_found: - raise OptionalImportError(f"No ImageWriter backend found for {fmt}.") + hints = { + "png": "pip install pillow", + "jpg": "pip install pillow", + "jpeg": "pip install pillow", + "nii": "pip install nibabel", + "nii.gz": "pip install nibabel", + "dcm": "pip install itk", + } + hint = hints.get(fmt.lstrip(".").lower(), "pip install pillow or pip install nibabel") + raise OptionalImportError( + f"No ImageWriter backend found for {fmt}. Try: {hint}." + ) writer_tuple = ensure_tuple(avail_writers) SUPPORTED_WRITERS[fmt] = writer_tuple return writer_tuple