Format pakietu WHL
W ekosystemie rozwoju Python, w którym wydajna dystrybucja pakietów jest kluczowa, pliki WHL (Wheel) stały się standardowym rozwiązaniem do niezawodnego i szybkiego instalowania pakietów Python.
Informacje o archiwum koła Python
WHL jest formatem pakowania zbudowanego dla Pythona, który zawiera wszystkie pliki niezbędne do instalacji w stanie wstępnie skompilowanym. Zasadniczo plik WHL to Archiwum ZIP ze specjalną strukturą katalogu i konwencją nazewnictwa, która umożliwia menedżerom pakietów Pythona instalowanie oprogramowania bez konieczności uruchamiania procesu kompilacji w systemie użytkownika końcowego. Ze względu na lepszą szybkość i niezawodność instalacji, ten format ogólnie wyparł format starszego. EGG (.TAR.GZ) dla wielu produktów Python.
Ewolucja plików WHL
W 2012 r. PEP 427 ogłosił format WHL, który jest formalnie nazywany „kołem”, jako ulepszenie poprzedniego formatu jaja. Daniel Holth stworzył go, aby rozwiązać szereg problemów z ekosystemem opakowania Python. Kiedy PIP, instalator pakietu Pythona, zawierał funkcję instalacji kół w wersji 1.4, która została udostępniona na początku 2013 r., W formacie w tym znaczącym wznowieniu. Do 2014 r. Główne pakiety Pythona rozpoczęły dystrybucję plików kół, a dziś stał się de facto standardem dystrybucji pakietu Pythona. Wraz z postępem w ekosystemie pakowania Pythona format ewoluuje; Najnowsze standardy są przedstawione w PEP 600 i PEP 621.
Struktura plików WHL
Pliki WHL to zasadniczo archiwa zip z określoną wewnętrzną strukturą, która następuje po specyfikacjach pakowania Pythona. W pliku WHL znajdziesz skompilowane moduły Python (pliki .pyc), metadane o pakiecie i wszelkie binarne rozszerzenia potrzebne do funkcjonowania pakietu. Sama nazwa pliku jest zgodna z ścisłą konwencją, która koduje ważne informacje: nazwa pakietu, wersja, tagi kompatybilności Pythona i architekturę docelową. To ustrukturyzowane podejście pozwala menedżerom opakowań Pythona szybko ustalić, czy koło jest kompatybilne z systemem docelowym bez konieczności wyodrębnienia jego zawartości.
Metody kompresji WHL
Pliki WHL wykorzystują te same metody kompresji, co zwykłe pliki pocztowe, ponieważ są to zasadniczo archiwa pocztowe. Algorytm deflate, który równoważy współczynnik kompresji i prędkość dekompresji, jest najczęściej używany do kompresji zawartości plików WHL. Ta metoda gwarantuje, że pakiety mogą być szybko zainstalowane, zachowując jednocześnie rozmiary plików odpowiednich do dystrybucji. Pliki te są kompatybilne z bibliotekami takimi jak aspose.zip , które ułatwiają ekstrakcję i generowanie pakietów WHL przy użyciu różnych technik kompresji, takich jak deflate, deflate64TM, BZIP2 i inne.
Operacje obsługiwane przez archiwum WHL
Korzystając z narzędzi takich jak aspose.zip dla Python .NET , programiści mogą manipulować plikami WHL na różne sposoby. Można tworzyć pakiety kół, zawartość można sprawdzić, pliki można wyodrębnić z WHL bez instalacji, metadane można zmienić, a zmodyfikowane koła można przepakować. Python Paint Consevery, które muszą debugować problemy, dostosować pakiety do unikalnych kontekstów lub zbadać zależności, uznają te działania szczególnie pomocne. Dodatkowe polecenia instalowania plików WHL, konwersji dystrybucji źródłowych na koła i sprawdzanie poprawności pakietów kół są zawarte w standardowym narzędziu Pythona, który obejmuje również narzędzia PIP i koła.
Plik WHL - struktura wewnętrzna
Pliki WHL to zasadniczo archiwa zip z określoną wewnętrzną strukturą, która następuje po specyfikacjach pakowania Pythona. W pliku WHL znajdziesz:
"
- Metadane pakietu: Informacje o autorze, wersji, zależnościach i wymaganiach dotyczących pakietu
- Rozszerzenia binarne: Specyficzne dla platformy biblioteki potrzebne do funkcjonalności pakietu
- Konwencja nazewnictwa ustrukturyzowanego: nazwa pliku, która koduje krytyczne informacje:
- Nazwa pakietu
- Numer wersji
- Tagi kompatybilności Pythona
- Architektura docelowa (np. Win_AMD64, Manylinux1_X86_64)
Ta znormalizowana wewnętrzna organizacja obejmuje:
- Treść pakietu root: Rzeczywisty kod i zasoby Pythona
- . Katalog dist-info: zawiera pliki metadanych, takie jak metadane, koło i rekord
- . Katalog danych (opcjonalnie): Posiada pliki i zasoby danych bez Pythona
To ustrukturyzowane podejście pozwala na szybką walidację i instalację pakietów przy jednoczesnym zachowaniu bezpieczeństwa poprzez weryfikację skrótu.
Popularność plików i obsługi WHL
Ze względu na jego skuteczność i niezawodność WHL pojawiła się jako preferowana metoda dystrybucji pakietów Pythona. Pliki na kółkach są teraz dostępne dla prawie każdego pakietu wymienionego w indeksie pakietu Python (PYPI). Ten format jest w pełni poparty ekosystemem Python, z narzędziami, takimi jak PIP dające kółki pierwszeństwa nad rozkładami źródłowymi, w których są one dostępne. Niezależnie od środowiska programowania programiści Python zawsze korzystają z tego formatu, ponieważ działa ze wszystkimi głównymi systemami operacyjnymi, w tym z systemem Windows, MacOS i Linux.
Przykłady korzystania z plików WHL
Pliki WHL są niezbędne dla programistów Python, którzy chcą efektywnie rozpowszechniać i instalować pakiety. Praca z plikami WHL programowo pozwala programistom dostosować przepływ pracy zarządzania pakietami. W poniższych przykładach kodu zbadamy, jak korzystać z bibliotek do tworzenia i wyodrębnienia plików WHL, demonstrując techniki kontroli i modyfikacji pakietów. Te przykłady pomogą ci zrozumieć, jak wykorzystać pliki WHL w projektach rozwoju Python w celu gładszego zarządzania i wdrażania zależności.
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);
}
}
}
![]() | ![]() | ![]() |
---|
Dodatkowe informacje o whl-Archives
Ludzie pytali
1. Jak zainstalować plik WHL w Python?
Aby zainstalować plik WHL, użyj polecenia PIP: PIP Instal Filename.Whl
. To polecenie działa na wszystkich platformach i jest standardowym sposobem instalowania pakietów kół w Python. Jeśli pracujesz w wirtualnym środowisku, upewnij się, że jest on najpierw aktywowany.
2. Czy mogę utworzyć własne pliki WHL do dystrybucji?
Tak, możesz tworzyć pliki WHL za pomocą narzędzi kompilacji Pythona. Najpierw upewnij się, że Twój projekt ma odpowiedni plik Setup.py lub PyProject.toml, a następnie uruchom „Python -m Build -Wheel” w katalogu projektu. Wygeneruje to plik WHL w katalogu Dist/ Direct, który można rozpowszechniać lub przesłać do PYPI.
3. Czy pliki WHL są specyficzne dla platformy?
To zależy od zawartości pakietu. Koła „czyste Python” (oznaczone tagiem „PY3”) działają na wszystkich platformach. Jednak koła zawierające skompilowane rozszerzenia (oznaczone tagami specyficznymi dla platformy, takimi jak „Win_AMD64” lub „Manylinux”) są specyficzne dla platformy i będą działać tylko w systemach dopasowania. Dlatego niektóre pakiety oferują wiele plików kół dla różnych platform.