개발 환경에만 있는 DLL
확장 모듈이 사용하는 DLL이 빌드 환경에는 있어도 최종 사용자의 기계에는 없을 수 있다. Delvewheel은 시스템 라이브러리 등을 제외한 외부 DLL 의존성을 확인하고 필요한 파일을 wheel에 복사한다. Linux의 Auditwheel과 macOS의 Delocate가 다루는 문제를 Windows 환경에서 다루는 도구다.
포함한 파일의 실행 시 로드
파일을 압축 안에 넣기만 해서는 확장 모듈이 올바른 라이브러리를 찾는다고 보장할 수 없다. Delvewheel은 wheel을 수정해 포함한 DLL이 실행 시 로드되도록 처리한다. 라이브러리 이름이 충돌하는 문제를 피하기 위한 추가 동작도 수행한다.
검색 경로와 실행 환경
PATH를 통해 DLL을 찾고 추가 검색 디렉터리를 지정할 수 있다. 도구를 실행하는 환경이 복구 대상 wheel의 환경과 반드시 같을 필요는 없다. 다만 복구한 결과가 목표 Windows 환경에서 올바르게 설치되고 동작하는지는 별도로 검증해야 하며 파일 포함 여부와 실행 호환성을 구분해야 한다.
관련 문서
Auditwheel / Delocate / Cibuildwheel / Python Build / Twine