Repolode
cloudpipe

cloudpipe/cloudpickle

扩展 Python 的 pickle,可序列化 lambda、交互式定义的函数和类,便于把代码发送到远程节点执行。

Star
1,947
Fork
212
未关闭 Issue
124
最近提交
上个月

这是什么?

cloudpickle 是一个 Python 序列化库,能够处理标准库 pickle 无法序列化的对象,包括 lambda 函数,以及在脚本、交互式 shell 或 Jupyter 笔记本的 __main__ 模块中定义的函数和类。

它主要面向集群计算场景,即把 Python 代码通过网络发送到远程主机执行,有时需要靠近数据运行。与按模块引用的方式不同,cloudpickle 可以按值序列化函数和类;自 2.0.0 版本起,开发者还可以显式注册模块按值序列化,使工作节点无需安装该模块。

序列化数据只能在相同版本的 Python 之间传递,不支持也不建议用于长期存储。由于反序列化可能执行任意代码,只应加载来自可信来源的数据。

核心功能

  • 01支持序列化 lambda 函数以及交互式定义的函数和类。
  • 02支持按值而非按引用序列化函数和类。
  • 03提供 register_pickle_by_value 接口,可为指定模块启用按值序列化。
  • 04沿用标准 pickle 的 dumps 和 loads 接口,使用方式简单。

适用场景

  • 在分布式计算框架中把 Python 函数发送到远程工作节点。
  • 将 lambda 或 notebook 中定义的函数传递给并行处理任务。
  • 在不重新安装模块的情况下,更新工作节点上的模块代码。

快速上手

  1. 1

    从 PyPI 安装 cloudpickle

    pip install cloudpickle

使用前须知

  • 只能在完全相同版本的 Python 之间传递对象。
  • 不支持也不建议用于长期对象存储。
  • 只能加载来自可信来源的 pickle 数据,因为反序列化可能执行任意代码。
  • 对可导入模块按值序列化的功能仍处于实验阶段。

标签

常见问题

cloudpickle 是什么?
扩展 Python 的 pickle,可序列化 lambda、交互式定义的函数和类,便于把代码发送到远程节点执行。 cloudpickle 是一个 Python 序列化库,能够处理标准库 pickle 无法序列化的对象,包括 lambda 函数,以及在脚本、交互式 shell 或 Jupyter 笔记本的 __main__ 模块中定义的函数和类。
cloudpickle 可以免费使用吗?用的什么许可证?
cloudpickle 以 Other 许可证开源。用于商业产品前,请先确认许可证条款。
cloudpickle 还在维护吗?
半年内有更新。cloudpickle 最近一次提交是在 2026年9月10日。
cloudpickle 适合用来做什么?
在分布式计算框架中把 Python 函数发送到远程工作节点。 将 lambda 或 notebook 中定义的函数传递给并行处理任务。 在不重新安装模块的情况下,更新工作节点上的模块代码。
cloudpickle 怎么安装和运行?
从 PyPI 安装 cloudpickle: pip install cloudpickle
在哪里获取 cloudpickle?
源代码和安装说明在 GitHub 上:https://github.com/cloudpipe/cloudpickle

概要由 AI 根据项目 README 生成;GitHub 数据每日更新。

相关项目