From d84be65b79e0e8c275d503ab66605f4bcf29523f Mon Sep 17 00:00:00 2001 From: pin <7534292+pintaste@users.noreply.github.com> Date: Wed, 20 May 2026 06:08:03 +0800 Subject: [PATCH] fix: catch ImportError for optional ujson/orjson imports ModuleNotFoundError is a subclass of ImportError, but some environments raise ImportError directly when optional dependencies are not installed. Catching ImportError covers both cases. Fixes #15536 --- fastapi/responses.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/fastapi/responses.py b/fastapi/responses.py index 29df4b7a61..0c9caa4d04 100644 --- a/fastapi/responses.py +++ b/fastapi/responses.py @@ -26,13 +26,13 @@ class _OrjsonModule(Protocol): try: ujson = cast(_UjsonModule, importlib.import_module("ujson")) -except ModuleNotFoundError: # pragma: nocover +except ImportError: # pragma: nocover ujson = None # type: ignore[assignment] try: orjson = cast(_OrjsonModule, importlib.import_module("orjson")) -except ModuleNotFoundError: # pragma: nocover +except ImportError: # pragma: nocover orjson = None # type: ignore[assignment]