Repolode
cloudpipe

cloudpipe/cloudpickle

Python의 pickle을 확장해 람다와 대화형으로 정의한 함수 및 클래스를 직렬화하고, 원격 워커로 코드를 보냅니다.

스타
1,947
포크
212
열린 이슈
124
마지막 커밋
지난달

어떤 프로젝트인가요?

cloudpickle은 표준 pickle 모듈이 처리하지 못하는 Python 구문을 지원하는 직렬화 라이브러리입니다. 스크립트, 셸 또는 Jupyter notebook에서 정의한 람다 함수와 __main__ 모듈의 함수 및 클래스를 직렬화할 수 있습니다.

주요 사용 사례는 Python 코드를 네트워크로 전송해 데이터와 가까운 원격 호스트에서 실행하는 클러스터 컴퓨팅입니다. 함수를 모듈에 대한 참조로 피클링하는 대신 값으로 직렬화할 수 있으며, 버전 2.0.0부터는 개발자가 모듈을 값 기반 직렬화 대상으로 명시적으로 등록해 워커에 해당 모듈을 설치하지 않아도 되도록 할 수 있습니다.

직렬화된 데이터는 동일한 Python 버전 간에만 주고받을 수 있으며, 장기 보관은 지원하지 않습니다. 역직렬화 과정에서 임의의 코드가 실행될 수 있으므로 신뢰할 수 있는 출처의 데이터만 불러와야 합니다.

핵심 기능

  • 01람다 함수와 대화형으로 정의한 함수 및 클래스를 직렬화합니다.
  • 02함수와 클래스를 참조가 아닌 값으로 피클링할 수 있습니다.
  • 03register_pickle_by_value를 통해 모듈을 값 기반 직렬화 대상으로 등록할 수 있습니다.
  • 04dumps와 loads를 사용해 표준 pickle 인터페이스를 확장된 형태로 그대로 사용할 수 있습니다.

활용 사례

  • 분산 컴퓨팅 프레임워크에서 원격 워커로 Python 함수를 전송합니다.
  • 병렬 처리 작업에 람다나 notebook에서 정의한 함수를 전달합니다.
  • 재설치 없이 워커의 코드를 업데이트해야 하는 모듈을 개발합니다.

빠른 시작

  1. 1

    PyPI에서 cloudpickle을 설치합니다

    pip install cloudpickle

사용 전 알아둘 점

  • 완전히 동일한 Python 버전 간에만 객체를 전송할 수 있습니다.
  • 장기적인 객체 저장은 지원하지 않습니다.
  • 피클 데이터를 역직렬화하면 임의의 코드가 실행될 수 있으므로 신뢰할 수 있는 출처의 데이터만 불러오세요.
  • 가져올 수 있는 모듈의 값 기반 직렬화는 실험적인 기능입니다.

토픽

자주 묻는 질문

cloudpickle은(는) 무엇인가요?
Python의 pickle을 확장해 람다와 대화형으로 정의한 함수 및 클래스를 직렬화하고, 원격 워커로 코드를 보냅니다. cloudpickle은 표준 pickle 모듈이 처리하지 못하는 Python 구문을 지원하는 직렬화 라이브러리입니다. 스크립트, 셸 또는 Jupyter notebook에서 정의한 람다 함수와 __main__ 모듈의 함수 및 클래스를 직렬화할 수 있습니다.
cloudpickle은(는) 무료로 사용할 수 있나요? 라이선스는 무엇인가요?
cloudpickle은(는) Other 라이선스의 오픈소스입니다. 상업용 제품에 사용하기 전에 라이선스 조건을 확인하세요.
cloudpickle은(는) 아직 유지보수되고 있나요?
6개월 이내 업데이트. cloudpickle의 마지막 커밋은 2026년 9월 10일입니다.
cloudpickle은(는) 어디에 사용할 수 있나요?
분산 컴퓨팅 프레임워크에서 원격 워커로 Python 함수를 전송합니다. 병렬 처리 작업에 람다나 notebook에서 정의한 함수를 전달합니다. 재설치 없이 워커의 코드를 업데이트해야 하는 모듈을 개발합니다.
cloudpickle는 어떻게 설치하나요?
PyPI에서 cloudpickle을 설치합니다: pip install cloudpickle
cloudpickle은(는) 어디서 받을 수 있나요?
소스 코드와 설치 방법은 GitHub에 있습니다: https://github.com/cloudpipe/cloudpickle

요약은 프로젝트 README를 바탕으로 AI가 작성했습니다. GitHub 통계는 매일 갱신됩니다.

관련 프로젝트