소스 배포(`sdist`)와 휠 배포(`bdist_wheel`)

About_work·2024년 3월 5일
0

cs 기초

목록 보기
27/38

Python 패키지를 배포할 때, 주로 사용되는 두 가지 포맷이 있습니다: 소스 배포(sdist)와 휠 배포(bdist_wheel). 이 두 포맷은 Python 코드와 리소스를 패키징하는 방법에 있어 차이를 가집니다.

요약

  • 소스 배포 (sdist): 패키지의 소스 코드를 포함하며, 사용자가 직접 빌드해야 합니다. 모든 환경에서 사용 가능하나, 설치 과정이 더 복잡하거나 시간이 더 걸릴 수 있습니다.
  • 휠 배포 (bdist_wheel): 바이너리 형태의 패키지로, 빠르고 쉽게 설치할 수 있습니다. 플랫폼에 따라 다른 바이너리가 필요할 수 있으나, 대부분의 순수 Python 패키지에서는 플랫폼 독립적인 휠을 제공할 수 있습니다.

휠 포맷이 소스 배포에 비해 여러 이점을 제공하기 때문에, 가능한 한 휠 포맷을 사용하여 패키지를 배포하는 것이 권장됩니다.

소스 배포 (sdist)

  • 정의: 소스 배포(sdist)는 패키지의 소스 코드를 포함하는 배포 파일입니다. 이 포맷은 패키지의 원본 소스 코드, 메타데이터, 스크립트 등을 압축한 파일(.tar.gz, .zip 등)로 구성됩니다.
  • 용도:
    • sdist사용자가 소스 코드를 직접 컴파일하거나,
    • 설치 스크립트를 실행하여 패키지를 설치해야 하는 경우에 사용
  • 이는 모든 플랫폼에서 동일하게 사용할 수 있으며, 빌드 과정에서 필요한 추가적인 작업(예: C 확장 모듈 컴파일)을 수행할 수 있습니다.
  • 생성 명령어:
    • python setup.py sdist를 실행하여 소스 배포 파일을 생성

휠 배포 (bdist_wheel)

  • 정의:
    • 휠 배포(bdist_wheel)는 Python의 바이너리 패키지 포맷
    • 휠 포맷(.whl)은 설치가 더 빠르고, 컴파일 없이 설치할 수 있으며, 시스템 구성이나 컴파일러 의존성에 대한 걱정 없이 사용할 수 있게 설계
  • 용도:
    • 휠은 바이너리 배포를 목적으로 하며, 특히 순수 Python 패키지 또는 플랫폼별 바이너리 컴포넌트를 포함하는 패키지에 이상적
    • 설치 과정이 빠르고, 사용자가 추가적인 빌드 작업 없이 패키지를 설치할 수 있음
  • 생성 명령어:
    • 먼저 wheel 패키지를 설치한 후, python setup.py bdist_wheel를 실행하여 휠 배포 파일을 생성
profile
새로운 것이 들어오면 이미 있는 것과 충돌을 시도하라.

0개의 댓글