私はこの人に似た問題を抱えています。pathos モジュールで単純なマルチプロセッシング ルーチンを実行できず、酸洗エラーが発生します。以下はコードとエラーです。
from pathos.multiprocessing import ProcessingPool
import dill
class ProcClass(object):
def __init__(self):
pass
def f(self,x):
return x*x
pc = ProcClass()
pl = ProcessingPool(3)
print pl.map(pc.f, range(10))
返されたエラー:
Exception in thread Thread-2:
Traceback (most recent call last):
File "/Library/Frameworks/EPD64.framework/Versions/7.3/lib/python2.7/threading.py", line 551, in __bootstrap_inner
self.run()
File "/Library/Frameworks/EPD64.framework/Versions/7.3/lib/python2.7/threading.py", line 504, in run
self.__target(*self.__args, **self.__kwargs)
File "/Library/Frameworks/EPD64.framework/Versions/7.3/lib/python2.7/multiprocessing/pool.py", line 320, in _handle_tasks
put(task)
PicklingError: Can't pickle <type 'function'>: attribute lookup __builtin__.function failed
インストールしました:pp、dill、pox、およびマルチプロセッシング、次にpathosをインストールしました。インストールは機能しますが、常に次のエラーが表示されます。
警告: 次の依存関係の 1 つが解決されていません: pp(ft) >=1.6.4.5 dill >=0.2.4 pox >=0.2.2 (マルチ) 処理
同様の質問に対するpathosの作成者からの回答に基づいて、インストールに問題があるようです。適切な依存関係がインストールされていることを確認するたびに、何度か削除して再インストールしました。私はMacOSで実行しており、python 2.7を使用しています。どんな助けでも大歓迎です!