From 1b7d233984487c2f6741e3b439f57f62b7dde79e Mon Sep 17 00:00:00 2001 From: Newcomer00 Date: Wed, 25 Feb 2026 17:31:58 +0800 Subject: [PATCH] fix(packaging): guard find_spec against missing parent package importlib.util.find_spec raises ModuleNotFoundError when the parent of a dotted name (e.g. nvidia) is not installed, instead of returning None. Wrap the call so CPU-only builds don't error out. --- build/hooks/hook-utils.gpu.py | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/build/hooks/hook-utils.gpu.py b/build/hooks/hook-utils.gpu.py index b34bcea..23e4027 100644 --- a/build/hooks/hook-utils.gpu.py +++ b/build/hooks/hook-utils.gpu.py @@ -2,4 +2,12 @@ from utils.gpu import CUDA_PACKAGES -hiddenimports = [pkg for pkg in CUDA_PACKAGES if importlib.util.find_spec(pkg) is not None] + +def _is_importable(pkg: str) -> bool: + try: + return importlib.util.find_spec(pkg) is not None + except ModuleNotFoundError: + return False + + +hiddenimports = [pkg for pkg in CUDA_PACKAGES if _is_importable(pkg)]