다중 처리 목적으로 함수를 사용하고 싶습니다. 피클 할 수 없습니다. 내가 코드를 실행할 때, 나는 오류를 얻을copy_reg 만 사용하여 피클 링하는 방법
from multiprocessing import Pool
def g(x):
def g1(y):
return x*y
return g1
if __name__ == "__main__":
f=g(5)
Pool(2).map(f,[2,3])
: 다음과 같은 코드가 근본적으로 보이는거야 내가 copy_reg
이 문제를 해결할 수 있습니다 읽었습니다
File "<stdin>", line 1, in <module>
File "/usr/lib/python2.7/multiprocessing/pool.py", line 251, in map
return self.map_async(func, iterable, chunksize).get()
File "/usr/lib/python2.7/multiprocessing/pool.py", line 558, in get
raise self._value
cPickle.PicklingError: Can't pickle <type 'function'>: attribute lookup
__builtin__.function failed
을하지만, 예를 혼동 나를. 또한 그들 중 일부는 marshal
과 같은 추가 패키지를 사용합니다. 가능한 경우 누군가 copy_reg
만을 사용하여 간단한 수정을 제공 할 수 있습니까?
쿨, 비애의 비애를 사용할 수 있습니다 : 당신은 이것을 명령 줄을 입력해야합니다. 감사! – user3433489