STL風の構文でJSONの解析、構築、操作、シリアライズができる、ヘッダーオンリーのC++11ライブラリ。
cloudpipe/cloudpickle
Pythonのpickleを拡張し、lambdaや対話環境で定義した関数・クラスをシリアライズして、リモートワーカーへコードを送信できます。
- スター
- 1,947
- フォーク
- 212
- 未解決の Issue
- 124
- 最終コミット
- 先月
これは何?
cloudpickleは、標準のpickleモジュールでは扱えない構造もシリアライズできるPythonライブラリです。スクリプト、シェル、Jupyter notebookなどの__main__モジュールで定義したlambda関数や関数、クラスをシリアライズできます。
主な用途はクラスタコンピューティングです。Pythonコードをネットワーク経由でリモートホスト(多くの場合、データの近くにあるホスト)へ送り、実行できます。関数をモジュールへの参照としてpickle化する代わりに、cloudpickleでは値としてシリアライズできます。また、バージョン2.0.0以降では、開発者がモジュールを明示的に値によるシリアライズの対象として登録できるため、ワーカーにそのモジュールをインストールしておく必要がありません。
シリアライズしたデータの交換は同じPythonバージョン間に限られ、長期保存はサポートされていません。unpickle時には任意のコードが実行される可能性があるため、信頼できるソースからのデータのみを読み込んでください。
主な機能
- 01lambda関数や対話環境で定義した関数・クラスをシリアライズできます。
- 02関数やクラスを参照ではなく値としてpickle化できます。
- 03register_pickle_by_valueを使って、値によるシリアライズの対象となるモジュールを登録できます。
- 04標準のpickleインターフェースを拡張する形で、dumpsとloadsを利用できます。
ユースケース
- 分散コンピューティングフレームワークで、Python関数をリモートワーカーへ送信する。
- 並列処理ジョブにlambdaやノートブックで定義した関数を渡す。
- 再インストールせずにワーカー上のコードを更新する必要があるモジュールを開発する。
クイックスタート
- 1
PyPIからcloudpickleをインストールする
pip install cloudpickle
使う前に知っておきたいこと
- まったく同じPythonバージョン間でのみオブジェクトを送信できます。
- 長期的なオブジェクトの保存には対応していません。
- pickleの読み込みは任意のコードを実行する可能性があるため、信頼できるソースからのデータのみを読み込んでください。
- インポート可能なモジュールの値によるシリアライズは実験的な機能です。
トピック
よくある質問
- cloudpickle とは?
- Pythonのpickleを拡張し、lambdaや対話環境で定義した関数・クラスをシリアライズして、リモートワーカーへコードを送信できます。 cloudpickleは、標準のpickleモジュールでは扱えない構造もシリアライズできるPythonライブラリです。スクリプト、シェル、Jupyter notebookなどの__main__モジュールで定義したlambda関数や関数、クラスをシリアライズできます。
- cloudpickle は無料で使えますか?ライセンスは?
- cloudpickle は Other ライセンスのオープンソースです。商用製品で使う前にライセンス条件を確認してください。
- cloudpickle は今もメンテナンスされていますか?
- 半年以内に更新あり。cloudpickle の最終コミットは 2026年9月10日 です。
- cloudpickle は何に使えますか?
- 分散コンピューティングフレームワークで、Python関数をリモートワーカーへ送信する。 並列処理ジョブにlambdaやノートブックで定義した関数を渡す。 再インストールせずにワーカー上のコードを更新する必要があるモジュールを開発する。
- cloudpickle のインストール方法は?
- PyPIからcloudpickleをインストールする: pip install cloudpickle
- cloudpickle はどこで入手できますか?
- ソースコードとインストール手順は GitHub にあります:https://github.com/cloudpipe/cloudpickle
概要はプロジェクトの README をもとに AI が生成しています。GitHub の数値は毎日更新されます。
関連プロジェクト
1つの.sk irファイルから、TypeScript、Python、Java、Go、C++など向けの型安全なデータモデルとRPCコードを生成する宣言的スキーマ言語。
RayCluster、RayJob、RayServiceリソースを通じてRayアプリケーションをデプロイ、管理するKubernetesオペレーター。
ボランティアのGPUでAI画像やテキストを生成し、リクエストを送る誰もが利用できる、無料のコミュニティ運営分散型サービス。
大規模データセットをネットワーク越しに移動せず、データのある場所で計算ジョブを実行するオープンソースフレームワーク。
シリアライズ、認証ポリシー、viewset、Browsable APIを備えた、Django上でWeb APIを構築するためのツールキット。