0

複雑なデータ オブジェクトがあります。それを別のpythonプロセスと共有する最良の方法は何ですか?

背景: 回避するために、GILすべての計算を行う 2 番目のプロセスを生成します。を使用してメインプロセスにログを記録しUDPます。この計算プロセスには、この複雑なオブジェクトである入力データが必要です。では、最も簡単な方法で共有するにはどうすればよいでしょうか。

4

2 に答える 2

1

pickle を使用してシリアル化することを検討しましたか?

import pickle
fid = open(filename,'w')
fid.write(pickle.dumps(data))
fid.close()

次に、他のプロセスにロードします。

fid = open(filename,'r')
directData = fid.read()
data = pickle.loads(directData)
fid.close()

他の形式でも同様のことができます import json fid = open('jsonOutput','w') fid.write(json.dumps(data)) fid.close()

ファイル経由で転送したくない場合は、ネットワーク接続経由​​で転送できます

于 2013-09-27T13:41:44.557 に答える
0

私は今以下を使用しています:

process = multiprocessing.Process(target=start_remote_runner, args=(context,))
process.start()

これcontextにより、-object が remote_runner に渡されます。これは実際pickleにオブジェクトを渡すために内部的に使用されます。

于 2013-10-06T19:59:22.470 に答える