다른 기계에서 찾지 못하는 파일
로컬에서는 정상 동작하는 확장 모듈도 빌드 기계에만 있는 라이브러리를 참조하면 다른 기계에서 실패할 수 있다. Delocate는 확장이 사용하는 동적 라이브러리를 찾아 의존 관계를 보여준다. 패키지 밖의 라이브러리에 의존하는지 확인하는 작업에 활용한다.
복사한 라이브러리로 다시 연결
필요한 라이브러리를 패키지 내부로 복사하고 macOS의 install name과 rpath를 조정해 그 복사본을 찾도록 한다. 디렉터리 트리를 처리하는 명령과 wheel을 다시 구성하는 명령이 있다. 모든 시스템 파일을 무조건 포함하는 방식이 아니라 외부 의존성의 위치와 연결을 다루는 과정이다.
아키텍처 구성 확인
확장 모듈과 라이브러리가 필요한 아키텍처를 갖췄는지 확인할 수 있다. 별도로 만든 ARM과 Intel wheel을 하나의 Universal2 wheel로 합치는 명령도 제공한다. 파일을 묶었다는 사실만으로 모든 환경에서 동작하는 것은 아니므로 포함된 바이너리의 아키텍처와 실제 실행 결과를 확인해야 한다.
관련 문서
Auditwheel / Cibuildwheel / Scikit-build-core / Maturin / Twine