আমি একই সাথে কাজ বিভক্ত করতে multiprocessing
এর Pool.map()
ফাংশনটি ব্যবহার করার চেষ্টা করছি । আমি যখন নিম্নলিখিত কোডটি ব্যবহার করি তখন এটি ঠিকঠাক কাজ করে:
import multiprocessing
def f(x):
return x*x
def go():
pool = multiprocessing.Pool(processes=4)
print pool.map(f, range(10))
if __name__== '__main__' :
go()
যাইহোক, আমি যখন এটি আরও অবজেক্ট-ভিত্তিক পদ্ধতির ব্যবহার করি তখন এটি কার্যকর হয় না। এটি প্রদত্ত ত্রুটি বার্তাটি হ'ল:
PicklingError: Can't pickle <type 'instancemethod'>: attribute lookup
__builtin__.instancemethod failed
নিম্নলিখিতটি যখন আমার প্রধান প্রোগ্রাম হয় তখন এটি ঘটে:
import someClass
if __name__== '__main__' :
sc = someClass.someClass()
sc.go()
এবং নিম্নলিখিতটি আমার someClass
ক্লাস:
import multiprocessing
class someClass(object):
def __init__(self):
pass
def f(self, x):
return x*x
def go(self):
pool = multiprocessing.Pool(processes=4)
print pool.map(self.f, range(10))
সমস্যা কী হতে পারে বা এর চারপাশে সহজ উপায় যে কেউ জানেন?
PicklingError: Can't pickle <class 'function'>: attribute lookup builtins.function failed