WHL 패키지 형식

효율적인 패키지 분포가 중요한 Python Development Ecosystem에서 WHL (Wheel) 파일은 Python 패키지를 안정적이고 빠르게 배포하고 설치하는 표준 솔루션이되었습니다.

파이썬 휠 아카이브 정보

WHL은 사전 컴파일 된 상태로 설치하는 데 필요한 모든 파일을 포함하는 Python 용 내장 패키지 형식입니다. 본질적으로 WHL 파일은 특수 디렉토리 구조 및 명명 컨벤션이있는 Zip Archive 로 Python의 패키지 관리자가 최종 사용자 시스템에서 빌드 프로세스를 실행하지 않고도 소프트웨어를 설치할 수 있도록합니다. 더 나은 설치 속도와 신뢰성으로 인해이 형식은 일반적으로 많은 Python 제품에 대한 이전 .egg 형식 및 소스 배포 (.tar.gz)를 대체했습니다.

WHL 파일의 진화

2012 년 PEP 427은 이전 계란 형식의 향상으로 공식적으로 “휠"이라고 불리는 WHL 형식을 발표했습니다. Daniel Holth는 Python Packaging Ecosystem과 관련하여 여러 가지 문제를 해결하기 위해이를 만들었습니다. Python의 패키지 설치 프로그램 인 PIP에 2013 년 초에 제공된 버전 1.4의 휠 설치 기능을 포함 시켰을 때이 형식은 주요 상승세를 보였습니다. 2014 년까지 주요 Python 패키지는 휠 파일을 배포하기 시작했으며 오늘날 Python 패키지 배포의 사실상 표준이되었습니다. Python Packaging Ecosystem의 발전으로 형식은 계속 발전하고 있습니다. 가장 최근의 표준은 PEP 600 및 PEP 621에 요약되어 있습니다.

WHL 파일의 구조

WHL 파일은 본질적으로 Python 포장 사양을 따르는 특정 내부 구조를 가진 Zip Archives입니다. WHL 파일 내부에는 컴파일 된 Python 모듈 (.Pyc 파일), 패키지에 대한 메타 데이터 및 패키지 기능에 필요한 이진 확장 기능이 있습니다. 파일 이름 자체는 패키지 이름, 버전, 파이썬 호환 태그 및 대상 아키텍처와 같은 중요한 정보를 인코딩하는 엄격한 컨벤션을 따릅니다. 이 구조화 된 접근 방식을 통해 Python의 패키지 관리자는 내용을 추출하지 않고도 휠이 대상 시스템과 호환되는지 여부를 신속하게 결정할 수 있습니다.

WHL 압축 방법

WHL 파일은 기본적으로 ZIP 아카이브이기 때문에 일반 ZIP 파일과 동일한 압축 방법을 사용합니다. 압축 비율과 감압 속도의 균형을 맞추는 Deflate 알고리즘은 WHL 파일의 내용을 압축하는 데 가장 자주 사용됩니다. 이 방법은 배포에 적합한 파일 크기를 유지하면서 패키지를 빠르게 설치할 수 있음을 보장합니다. 이 파일은 deflate, deflate64tm, bzip2 과 같은 다양한 압축 기술을 사용하여 WHL 패키지의 추출 및 생성을 용이하게하는 as aspose.zip 와 같은 라이브러리와 호환됩니다.

WHL 아카이브 지원 작업

aspose.zip for python .net 와 같은 도구를 사용하여 개발자는 다양한 방식으로 WHL 파일을 조작 할 수 있습니다. 휠 패키지가 만들어지고, 내용을 검사 할 수 있으며, 설치없이 WHL에서 파일을 추출 할 수 있으며, 메타 데이터를 변경할 수 있으며 수정 된 바퀴를 다시 포장 할 수 있습니다. Python 패키지 유지 관리자는 문제를 디버깅하거나 고유 한 컨텍스트에 패키지를 조정하거나 종속성을 검사 해야하는 경우 이러한 작업이 특히 도움이 될 것입니다. WHL 파일을 설치하고 소스 배포를 바퀴로 변환 및 휠 패키지 검증에 대한 추가 명령은 PITH 및 휠 도구를 포함하는 Python의 표준 도구 체인에 포함되어 있습니다.

WHL 파일 - 내부 구조

WHL 파일은 본질적으로 Python 포장 사양을 따르는 특정 내부 구조를 가진 Zip Archives입니다. WHL 파일 내부에서는 다음을 찾을 수 있습니다.

  • 컴파일 된 Python 모듈: 컴파일 된 .pyc 파일 컴파일없이 직접로드 할 수 있습니다.
  • 패키지 메타 데이터: 패키지 저자, 버전, 종속성 및 요구 사항에 대한 정보
  • 이진 확장: 패키지 기능에 필요한 플랫폼 별 컴파일 라이브러리
  • 구조화 된 이름 지정 컨벤션: 중요한 정보를 인코딩하는 파일 이름 :
    • 패키지 이름
    • 버전 번호
    • 파이썬 호환성 태그
    • 대상 아키텍처 (예: win_amd64, manylinux1_x86_64)

이 표준화 된 내부 조직은 다음을 포함합니다.

  • 루트 패키지 내용 : 실제 파이썬 코드 및 리소스
  • .Dist-Info 디렉토리 : 메타 데이터, 휠 및 레코드와 같은 메타 데이터 파일이 포함되어 있습니다.
  • .Data Directory (선택 사항): 는 비 파이썬 데이터 파일 및 리소스를 보유합니다.

이 구조화 된 접근 방식은 해시 검증을 통해 보안을 유지하면서 패키지의 빠른 검증 및 설치를 허용합니다.

WHL 파일 - 내부 구조

WHL 파일의 인기 및 지원

그 효과와 신뢰성 때문에 WHL은 Python 패키지의 선호 분포 방법으로 등장했습니다. Python 패키지 인덱스 (PYPI)에 나열된 거의 모든 패키지에 휠 파일에 액세스 할 수 있습니다. 이 형식은 Python Ecosystem에서 완전히 지원되며 PIP와 같은 유틸리티는 사용 가능한 소스 분포보다 바퀴를 선행합니다. 프로그래밍 환경에 관계없이 Python 개발자는 Windows, MacOS 및 Linux를 포함한 모든 주요 운영 체제와 함께 작동하기 때문에 항상이 형식을 사용합니다.

WHL 파일 사용의 예

Python 개발자에게는 패키지를 효율적으로 배포하고 설치하려는 Python 개발자에게는 WHL 파일이 필수적입니다. WHL 파일로 작업하면 개발자가 패키지 관리 워크 플로우를 사용자 정의 할 수 있습니다. 다음 코드 예제에서는 라이브러리를 사용하여 WHL 파일을 만들고 추출하는 방법을 살펴보고 패키지 검사 및 수정 기술을 보여줍니다. 이 예제는 부드러운 종속성 관리 및 배포를 위해 Python 개발 프로젝트에서 WHL 파일을 활용하는 방법을 이해하는 데 도움이됩니다.

Create WHL via C#

    using (var archive = new Archive())
    {
        archive.CreateEntry("entry_name1.dat", "input_file1.dat");
        archive.CreateEntry("entry_name2.dat", "input_file2.dat");
        archive.Save("result_archive.whl");
    }

Compress and encrypt data file using Archive.Save method via C#

    using (var whlFile = File.Open("EncrypedWithAES256.whl", FileMode.Create)) 
    { 
        using (var source = File.Open("alice29.txt", FileMode.Open, FileAccess.Read)) 
        { 
            using (var archive = new Archive(new ArchiveEntrySettings(null, new AesEncryptionSettings("p@s$", EcryptionMethod.AES256)))) 
            { 
                archive.CreateEntry("alice29.txt", source); 
                archive.Save(whlFile); 
            } 
        } 
    }

Aspose.Zip offers individual archive processing APIs for popular development environments, listed below:

Aspose.Zip for .NETAspose.Zip via JavaAspose.Zip via Python.NET

zip-archives에 대한 추가 정보

사람들이 묻고 있습니다

1. 파이썬에서 WHL 파일을 어떻게 설치합니까?

WHL 파일을 설치하려면 PIP 명령을 사용하십시오 :`PIP 설치 filename.whl ‘. 이 명령은 모든 플랫폼에서 작동하며 파이썬에 휠 패키지를 설치하는 표준 방법입니다. 가상 환경에서 작업하는 경우 먼저 활성화되어 있는지 확인하십시오.

2. 배포를 위해 나만의 WHL 파일을 만들 수 있습니까?

예, Python의 빌드 도구를 사용하여 WHL 파일을 만들 수 있습니다. 먼저 프로젝트에 적절한 setup.py 또는 pyproject.toml 파일이 있는지 확인한 다음 프로젝트 디렉토리에서 ‘python -m build -휠’을 실행하십시오. 이렇게하면 PYPI에 배포하거나 업로드 할 수있는 Dist/ Directory에서 WHL 파일이 생성됩니다.

3. WHL 파일은 플랫폼에 따라 다릅니 까?

패키지 컨텐츠에 따라 다릅니다. ‘순수한 파이썬’휠 ( ‘Py3’태그로 표시)는 모든 플랫폼에서 작동합니다. 그러나 컴파일 된 확장 기능 ( ‘win_amd64’또는 ‘manylinux’와 같은 플랫폼 별 태그로 표시)을 포함하는 휠은 플랫폼 별이며 일치하는 시스템에서만 작동합니다. 이것이 일부 패키지가 다른 플랫폼에 여러 휠 파일을 제공하는 이유입니다.