diff --git a/python/python/lancedb/functions.py b/python/python/lancedb/functions.py index 5979ba5fe..88bd53d7b 100644 --- a/python/python/lancedb/functions.py +++ b/python/python/lancedb/functions.py @@ -741,7 +741,11 @@ def _package_source(function: Callable[..., Any]) -> bytes: if globals_source: parts.extend(["", *globals_source]) parts.extend(["", function_source, ""]) - return "\n".join(parts).encode("utf-8") + try: + import cloudpickle + except ImportError as error: + raise RuntimeError("@udf remote registration requires cloudpickle") from error + return cloudpickle.dumps(function) class UdfDefinition: