WHL csomag formátuma

A Python Development ökoszisztémájában, ahol a hatékony csomag eloszlása ​​döntő jelentőségű, a WHL (Wheel) fájlok a Python -csomagok megbízásának és gyorsan történő elosztására és telepítésére szolgáló standard megoldássá váltak.

Python kerék archívum információ

A WHL egy épített csomag formátuma a Python számára, amely tartalmazza az összes fájlt, amely az előre összeállított állapotban történő telepítéshez szükséges. Lényegében a WHL fájl egy ZIP Archívum , amelynek speciális könyvtárszerkezete és elnevezési konferenciája van, amely lehetővé teszi a Python csomagkezelőinek, hogy szoftvert telepítsenek anélkül, hogy az összeállítási folyamatnak a végfelhasználó rendszerén futtatnia kell. Jobb telepítési sebessége és megbízhatósága miatt ez a formátum általában sok python terméknél helyettesítette a régebbi.EGG formátumot és a forrás -eloszlást (.tar.gz).

A WHL fájlok evolúciója

2012 -ben a PEP 427 bejelentette a WHL formátumot, amelyet hivatalosan “kerekesnek” neveznek, mint az előző tojás formátum javítását. Daniel Holth létrehozta, hogy számos problémát rögzítsen a Python csomagolási ökoszisztémával. Amikor a PIP, a Python csomag telepítője beillesztette a kerék telepítési képességét az 1.4 -es verzióban, amelyet 2013 elején elérhetővé tettek, a formátum jelentősen felgyorsult. 2014 -re a nagy Python -csomagok elkezdték a kerékfájlok terjesztését, és ma ez a Python csomag eloszlásának de facto szabványává vált. A Python csomagolási ökoszisztéma fejlődésével a formátum folyamatosan fejlődik; A legfrissebb szabványokat a PEP 600 és a PEP 621 ismerteti.

A WHL fájlok felépítése

A WHL fájlok alapvetően ZIP -archívumok, amelyek egy meghatározott belső struktúrával rendelkeznek, amely a Python csomagolási előírásait követi. Egy WHL -fájlban megtalálható a forgalmazott Python modulok (.pyc fájlok), a csomag metaadatait és a csomag működéséhez szükséges bináris kiterjesztéseket. Maga a fájlnév egy szigorú konvenciót követ, amely fontos információkat kódol: csomagnév, verzió, python kompatibilitási címkék és célépítészet. Ez a strukturált megközelítés lehetővé teszi a Python csomagkezelői számára, hogy gyorsan meghatározzák, hogy a kerék kompatibilis -e a célrendszerrel anélkül, hogy ki kellene húznia annak tartalmát.

A WHL tömörítésének módszerei

A WHL fájlok ugyanazokat a tömörítési módszereket alkalmazzák, mint a szokásos ZIP fájlok, mivel ezek alapvetően ZIP archívumok. A deflate algoritmust, amely kiegyensúlyozza a tömörítési arányt és a dekompressziós sebességet, leggyakrabban használják a WHL fájlok tartalmának tömörítésére. Ez a módszer garantálja, hogy a csomagok gyorsan telepíthetők, miközben megőrzik a disztribúciós fájlméreteket. Ezek a fájlok kompatibilisek az olyan könyvtárakkal, mint a aspose.zip , amelyek megkönnyítik a WHL -csomagok kinyerését és generálását különféle tömörítési technikákkal, például deflate, deflate64TM, BZIP2 és mások.

WHL Archívum támogatott műveletei

Az olyan eszközökkel, mint a aspose.zip a python .net , a fejlesztők különféle módon manipulálhatják a WHL fájlokat. Kerékcsomagok készíthetők, tartalmak ellenőrizhetők, a fájlokat telepítés nélkül lehet kinyerni a WHL -ből, a metaadatok megváltoztathatók, és a módosított kerekek újracsomagolhatók. A Python csomag karbantartóknak, akiknek hibakeresésének kell lennie, a csomagokat az egyedi kontextushoz kell adaptálni, vagy a függőségek megvizsgálására, ezeket a tevékenységeket különösen hasznosnak találják. A WHL fájlok telepítéséhez, a forráseloszlások kerekekké történő konvertálásához és a kerékcsomagok érvényesítéséhez a Python standard eszközláncában szerepelnek, amely tartalmazza a PIP és a kerék eszközöket is.

WHL fájl - Belső struktúra

A WHL fájlok alapvetően ZIP -archívumok, amelyek egy meghatározott belső struktúrával rendelkeznek, amely a Python csomagolási előírásait követi. Egy WHL fájl belsejében találja:

  • Összeállított Python modulok: Előzetesen összeállított .pyc fájlok, amelyek közvetlenül betölthetők összeállítás nélkül
  • Csomag metaadatok: Információ a csomag szerzőjéről, verziójáról, függőségeiről és követelményeiről
  • Bináris kiterjesztések: Platformspecifikus összeállított könyvtárak, amelyek a csomag funkcionalitásához szükségesek
  • Strukturált elnevezési egyezmény: A kritikus információkat kódoló fájlnév:
    • Csomagnév
    • Verziószám
    • Python kompatibilitási címkék
    • Cél -architektúra (például Win_AMD64, Manylinux1_x86_64)

Ez a szabványosított belső szervezet magában foglalja:

  • Gyökércsomag -tartalom: A tényleges python kód és erőforrások
  • . Dist-info könyvtár: olyan metaadat fájlokat tartalmaz, mint a metaadatok, a kerék és a Record
  • . Adatkönyvtár (Opcionális): Nem python adatfájlok és erőforrások tartják

Ez a strukturált megközelítés lehetővé teszi a csomagok gyors validálását és telepítését, miközben megőrzi a biztonságot a hash -ellenőrzés révén.

WHL fájl - Belső struktúra

A WHL fájlok és támogatás népszerűsége

Hatékonysága és megbízhatósága miatt a WHL a Python csomagok előnyben részesített elosztási módszerévé vált. A kerékfájlok már szinte minden csomaghoz hozzáférhetők a Python csomag indexén (PYPI). Ezt a formátumot teljes mértékben támogatja a Python ökoszisztéma, olyan segédprogramokkal, mint például a PIP, amely a kerekek elsőbbséget élvez a forrás -eloszlás felett, ahol rendelkezésre állnak. A programozási környezettől függetlenül a Python fejlesztői mindig ezt a formátumot használják, mivel az összes fő operációs rendszerrel, beleértve a Windows, a MacOS -t és a Linux -ot is működik.

Példák a WHL fájlok használatára

A WHL fájlok elengedhetetlenek azoknak a Python fejlesztőknek, akik a csomagokat hatékonyan elosztják és telepítsék. A WHL fájlokkal való együttműködés programozottan lehetővé teszi a fejlesztők számára, hogy testreszabják a csomagkezelési munkafolyamatot. A következő kódpéldákban megvizsgáljuk, hogyan lehet könyvtárakat használni a WHL fájlok létrehozásához és kinyeréséhez, bemutatva a csomagok ellenőrzéséhez és módosításához szükséges technikákat. Ezek a példák segítenek megérteni, hogyan lehetne felhasználni a WHL fájlokat a Python fejlesztési projektjeiben a simább függőség kezelése és telepítése érdekében.

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

További információk a zip-archivákról

Az emberek azt kérdezték

1. Hogyan telepíthetek egy WHL fájlt a Python -ba?

A WHL fájl telepítéséhez használja a PIP parancsot: PIP Install FileName.Whl. Ez a parancs minden platformon működik, és ez a szokásos módszer a kerékcsomagok Pythonba történő telepítésére. Ha virtuális környezetben dolgozik, ellenőrizze, hogy először aktiválja -e.

2. Készíthetek saját WHL -fájlokat terjesztésre?

Igen, létrehozhat WHL fájlokat a Python Build Tools segítségével. Először győződjön meg arról, hogy a projektnek megfelelő setup.py vagy pyproject.toml fájl van, majd futtassa a python -m build -Wheel -t a projektkönyvtárban. Ez egy WHL fájlt generál a Dist/ Directory -ban, amelyet eloszthat vagy feltölthet a PYPI -hez.

3. A WHL fájlok platform-specifikusak?

A csomagtartalomtól függ. A ‘Pure Python’ kerekek (a ‘py3’ címkével jelölve) minden platformon működnek. Az összeállított kiterjesztéseket tartalmazó kerekek (platformspecifikus címkékkel, például a „Win_AMD64” vagy a „Manylinux” jelöléssel) platformspecifikusak, és csak a megfelelő rendszereken fognak működni. Ez az oka annak, hogy egyes csomagok több kerék fájlokat kínálnak a különböző platformokhoz.