'InstanceMethod를 피클할 수 없음'으로 인해 다중 처리가 실패하는 이유는 무엇이며 어떻게 해결할 수 있습니까?
다중 처리의 오류 처리: "InstanceMethod를 Pickle할 수 없습니다."
다중 처리에서 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
이 오류는 다음 코드에서 볼 수 있듯이 바인딩된 메서드와 함께 Pool.map()을 사용하려고 할 때 발생합니다.
import someClass if __name__== '__main__' : sc = someClass.someClass() sc.go() 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))
해결 방법:
이 문제는 다중 처리 요구 사항에서 비롯됩니다. 개체를 피클하여 프로세스 간에 배포합니다. 그러나 바인딩된 메서드는 본질적으로 피클 가능하지 않습니다. 솔루션에는 피클링을 활성화하는 데 필요한 인프라를 구축하는 것이 포함됩니다.
한 가지 접근 방식은 피클링 및 피클링 해제 기능을 등록하기 위해 copy_reg 표준 라이브러리 방법을 사용하는 것입니다. 예를 들어 관련 토론 스레드에 대한 Steven Bethard의 기여는 copy_reg를 사용하여 메소드 피클링 및 피클링 해제에 대한 실행 가능한 접근 방식을 제공합니다.
위 내용은 'InstanceMethod를 피클할 수 없음'으로 인해 다중 처리가 실패하는 이유는 무엇이며 어떻게 해결할 수 있습니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

핫 AI 도구

Undresser.AI Undress
사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover
사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool
무료로 이미지를 벗다

Clothoff.io
AI 옷 제거제

Video Face Swap
완전히 무료인 AI 얼굴 교환 도구를 사용하여 모든 비디오의 얼굴을 쉽게 바꾸세요!

인기 기사

뜨거운 도구

메모장++7.3.1
사용하기 쉬운 무료 코드 편집기

SublimeText3 중국어 버전
중국어 버전, 사용하기 매우 쉽습니다.

스튜디오 13.0.1 보내기
강력한 PHP 통합 개발 환경

드림위버 CS6
시각적 웹 개발 도구

SublimeText3 Mac 버전
신 수준의 코드 편집 소프트웨어(SublimeText3)

뜨거운 주제











Fiddlerevery Where를 사용할 때 Man-in-the-Middle Reading에 Fiddlereverywhere를 사용할 때 감지되는 방법 ...

Linux 터미널에서 Python 사용 ...

10 시간 이내에 컴퓨터 초보자 프로그래밍 기본 사항을 가르치는 방법은 무엇입니까? 컴퓨터 초보자에게 프로그래밍 지식을 가르치는 데 10 시간 밖에 걸리지 않는다면 무엇을 가르치기로 선택 하시겠습니까?

Pythonasyncio에 대해 ...

Investing.com의 크롤링 전략 이해 많은 사람들이 종종 Investing.com (https://cn.investing.com/news/latest-news)에서 뉴스 데이터를 크롤링하려고합니다.

Python 3.6에 피클 파일 로딩 3.6 환경 오류 : ModulenotFounderRor : nomodulename ...

SCAPY 크롤러를 사용할 때 파이프 라인 파일을 작성할 수없는 이유에 대한 논의 지속적인 데이터 저장을 위해 SCAPY 크롤러를 사용할 때 파이프 라인 파일이 발생할 수 있습니다 ...
