私は、Pythonマルチプロセッシング・モジュールを使用してオブジェクトをキューに配置し、複数の作業者が処理させるようにしています。私の最初の問題は、私が働いていたピクルにバインドされたインスタンスメソッドを取得していたが、オブジェクトが__slots__
を使用しているという事実によって別の問題が発生している。Pythonマルチプロセッシング・ピクル・プロトコル
mpモジュールがオブジェクトをpickleにすると、それは__slots__
を処理できない古いascii pickleプロトコルを使用しているようです。より新しいプロトコルがこれを処理しますが、私はmpモジュールにこのプロトコルを使用させる方法がわかりません。
誰もがこれに関する経験がありますか?それは、あなたのオブジェクトに対して__getstate__
と__setstate__
を定義し、マルチプロセッシングパッケージが使用する漬物のプロトコルを変更することはできません場合は
エラーメッセージを貼り付けることはできますか? – ktdrv
使用しているPythonおよび/またはマルチプロセッシングモジュールのバージョンは?バージョン2.7は酸洗いに 'HIGHEST_PROTOCOL'を使うようです。 – eswald
@eswald:同上。私は2.7.1環境を使ってこれを(無駄なく)複製しようとしていました。 :) – ktdrv