I have a simple multiprocessing example that I am trying to create. The normal version of the map () function works, but when it changes to Pool.map, I get a strange error:
from multiprocessing import Pool from functools import partial x = [1,2,3] y = 10 f = lambda x,y: x**2+y # ordinary map works: map(partial(f,y=y),x) # [11, 14, 19] # multiprocessing map does not p = Pool(4) p.map(partial(f, y=y), x) Exception in thread Thread-2: Traceback (most recent call last): File "/usr/lib/python2.7/threading.py", line 551, in __bootstrap_inner self.run() File "/usr/lib/python2.7/threading.py", line 504, in run self.__target(*self.__args, **self.__kwargs) File "/usr/lib/python2.7/multiprocessing/pool.py", line 319, in _handle_tasks put(task) PicklingError: Can't pickle <type 'function'>: attribute lookup __builtin__.function failed
Etching Error? What it is?
source share