위키득계정 ↗
기술

Cibuildwheel

Cibuildwheel기술
대상
Python wheel
주요 환경
CI 서버
주요 기능
다중 플랫폼 빌드와 테스트
연계 작업
공유 라이브러리 의존성 처리
Cibuildwheel은 여러 운영체제와 Python 환경에 맞는 wheel을 CI에서 빌드하고 테스트하는 도구다. 배포 파일의 플랫폼별 생성과 검사를 자동화하며 공유 라이브러리 의존성을 묶는 도구와도 연결한다.

플랫폼마다 다른 배포 파일

확장 모듈이나 플랫폼별 코드가 포함된 패키지는 운영체제와 Python 환경에 맞는 배포 파일이 필요할 수 있다. Cibuildwheel은 여러 환경에서 wheel을 생성하는 작업을 CI에 구성한다. 실제 지원되는 플랫폼과 테스트 범위는 사용하는 CI와 실행기의 조합에 따라 달라진다.

공유 라이브러리와 배포

패키지가 외부 공유 라이브러리를 사용하면 빌드 기계에서 성공한 것만으로 배포가 끝나지 않는다. Cibuildwheel은 Linux의 Auditwheel, macOS의 Delocate, Windows의 Delvewheel 같은 도구와 연결해 의존성 처리를 수행한다. 운영체제에 맞는 배포 구성을 마련하는 단계다.

설치된 결과를 대상으로 테스트

테스트는 소스 디렉터리만이 아니라 wheel에서 설치한 라이브러리를 대상으로 실행할 수 있다. 이 방식은 실제 배포 산출물에 필요한 내용이 포함됐는지 확인하는 데 도움이 된다. 다만 교차 컴파일처럼 실행 환경이 다른 경우에는 빌드 가능 여부와 테스트 가능 여부를 구분해야 한다.

관련 문서

Scikit-build-core / Python Build / Twine / Setuptools / GoReleaser