提取 WHL 檔案

無限制 作業。檔案大小可達 2.5GB。免費,永遠免費。

完全本地化

我們的轉換器在您的瀏覽器中運行,所以我們從未看到您的數據。

超快速度

不需要上傳您的檔案到伺服器—轉換馬上開始。

安全為先

與其他轉換器不同,您的檔案從未上傳到我們。

什麼是 WHL 格式?

.whl 文件格式,代表“Wheel”,是一种基于 ZIP 的存档格式,专为分发和安装 Python 包而设计。它在 PEP 427 中作为旧 .egg 格式的替代品引入。与源代码分发相比,.whl 格式提供了一种更有效、更快速且与平台无关的方式来分发 Python 包。

.whl 文件本质上是一个 ZIP 存档,遵循特定的目录结构和命名约定。该存档包含 Python 包的源代码、已编译的字节码以及安装所需元数据文件。.whl 格式允许更快的安装,因为它消除了在安装期间执行 setup.py 和编译包的需要。

.whl 文件的命名约定遵循特定模式:{distribution}-{version}(-{build tag})?-{python tag}-{abi tag}-{platform tag}.whl。让我们分解每个组件: - {distribution}:Python 包的名称。 - {version}:包的版本号。 - {build tag}(可选):指示包的特定版本。 - {python tag}:指示 Python 实现和版本,例如 CPython 3.8 的 cp38。 - {abi tag}:指定应用程序二进制接口 (ABI),例如具有 Unicode UCS-4 的 CPython 3.8 的 cp38m。 - {platform tag}:指定目标平台,例如 64 位 Windows 的 win_amd64。 例如,名为 mypackage-1.0.0-cp38-cp38-win_amd64.whl 的 .whl 文件表示为 64 位 Windows 上的 CPython 3.8 构建的“mypackage”的 1.0.0 版本。

.whl 存档中的目录结构遵循特定的布局。在顶层,有一个“{distribution}-{version}.dist-info”目录,其中包含元数据文件。实际的包代码和资源存储在一个名为“{distribution}-{version}.data”的单独目录中。 在“.dist-info”目录中,您通常会找到以下文件: - METADATA:包含包元数据,例如名称、版本、作者和依赖项。 - WHEEL:指定 Wheel 规范的版本和包的兼容性标记。 - RECORD:.whl 存档中包含的所有文件的列表以及用于完整性验证的哈希值。 - entry_points.txt(可选):定义包的入口点,例如控制台脚本或插件。 - LICENSE.txt(可选):包含包的许可信息。 “.data”目录保存实际的包代码和资源,根据包的内部结构进行组织。

要创建 .whl 文件,您通常使用 setuptools 或 pip 等工具。这些工具会根据包的 setup.py 文件或 pyproject.toml 配置自动生成必要的元数据文件,并将代码打包到 .whl 格式中。例如,在包的目录中运行 `python setup.py bdist_wheel` 或 `pip wheel .` 将在“dist”目录中生成一个 .whl 文件。

从 .whl 文件安装包时,pip 等工具会处理安装过程。它们会提取 .whl 存档的内容,使用 RECORD 文件中的信息验证文件的完整性,并将包安装到 Python 环境中的适当位置。“.dist-info”目录中的元数据文件用于跟踪已安装的包及其依赖项。

.whl 格式的主要优点之一是它能够提供预构建的、特定于平台的包。这意味着用户可以安装包,而无需具有兼容的构建环境或从源代码编译包。.whl 文件可以针对不同的平台和 Python 版本进行构建和分发,从而更容易将包分发给广泛的用户。

与源代码分发相比,.whl 格式的另一个好处是其更快的安装速度。由于 .whl 文件包含预构建的字节码,并且在安装期间不需要执行 setup.py,因此安装过程明显更快。对于具有复杂构建过程或依赖项的包,这一点尤其明显。

.whl 格式还支持各种功能和扩展。例如,它允许在存档中包含已编译的扩展(例如 C 扩展),从而方便分发带有本机代码的包。它还支持“直接 URL 引用”(PEP 610)的概念,该概念允许为包依赖项指定 URL,从而实现更灵活的分发机制。

总之,.whl 存档格式是一种标准化且高效的分发 Python 包的方式。与源代码分发相比,它提供了一个与平台无关且更快的安装过程。通过遵循特定的目录结构和命名约定,.whl 文件将包代码、元数据和依赖项封装在一个存档中。.whl 格式的广泛采用极大地简化了 Python 包的分发和安装,使开发人员更容易共享他们的库,也使用户能够无缝地安装它们。

檔案壓縮透過減少冗餘,讓相同的資訊佔用更少的位元。可壓縮的上限受資訊理論約束:對於無失真壓縮,上界是信源熵(參見香農的信源編碼定理以及他於 1948 年發表的《通信的數學理論》)。對於有失真壓縮,碼率與感知品質之間的權衡由率失真理論描述。

兩大支柱:建模與編碼

多數壓縮器分兩個階段。首先,模型會預測或揭露資料中的結構。接著,編碼器把這些預測轉成近乎最優的位元型態。經典的建模家族是 Lempel–Ziv:LZ77 (1977)及 LZ78 (1978) 會偵測重複子字串並輸出參照而非原始位元組。編碼面則由霍夫曼編碼(見原始論文1952)為較常出現的符號分配更短的碼字。算術編碼範圍編碼再進一步逼近熵極限,而現代的非對稱數值系統(ANS)則用查表方式取得相似壓縮率。

常見格式怎麼做

DEFLATE(被 gzipzlibZIP 採用)把 LZ77 和霍夫曼編碼結合。其規格完全公開:DEFLATERFC 1951、zlib 封裝RFC 1950以及 gzip 檔案格式RFC 1952。Gzip 針對串流設計並明確不提供隨機存取。PNG 影像則把 DEFLATE 規範為唯一的壓縮方式(視窗最多 32 KiB),詳見 PNG 規格「Compression method 0… deflate/inflate… at most 32768 bytes」W3C/ISO PNG 第二版

Zstandard (zstd): 針對高壓縮率與極快解壓而設計的通用壓縮器。格式記載於RFC 8878(以及HTML 鏡像)和 GitHub 上的參考規格文件。與 gzip 類似,基本框架並不追求隨機存取。zstd 的絕招是字典:從語料擷取的小樣本能大幅改善許多小型或相似檔案的壓縮(參閱python-zstandard 字典文件Nigel Tao 的示例)。各實作同時支援「非結構化」與「結構化」字典(討論)

Brotli: 為網頁內容(如 WOFF2 字體、HTTP)優化,結合靜態字典與類 DEFLATE 的 LZ+熵編碼核心。規格載於RFC 7932,文件同時指出滑動視窗為 2WBITS-16,WBITS 介於 [10, 24](1 KiB-16 B 至 16 MiB-16 B),並且不嘗試隨機存取。Brotli 常在網頁文字上優於 gzip,解碼也相當快速。

ZIP 容器: ZIP 是一種檔案封存格式,可存放使用多種壓縮法(deflate、store、zstd 等)的項目。權威規格是 PKWARE 的 APPNOTE(參見APPNOTE 入口托管副本以及美國國會圖書館的概覽ZIP File Format (PKWARE)/ZIP 6.3.3)。

常見問題解答

什麼是檔案壓縮?

檔案壓縮是一個減少檔案或檔案群大小的過程,通常用於節省儲存空間或加速網路傳輸。

檔案壓縮是如何運作的?

檔案壓縮運作原理,透過識別並移除數據中的冗餘資訊。它使用演算法將原始數據編碼在較小的空間裡。

檔案壓縮有什麼類型?

兩種主要的檔案壓縮類型是無失真及有失真壓縮。無失真壓縮可以完美地恢復原始檔案,然而有失真壓縮在一些資料品質的損失下能得到更大的壓縮程度。

請給出一個檔案壓縮工具的範例?

一個常見的檔案壓縮工具範例是WinZip,它支援多種壓縮格式包括ZIP與RAR。

檔案壓縮會影響檔案質量嗎?

在無失真壓縮中,質量保持不變。然而,在有失真壓縮中,可能會有顯著的質量下降,因為它刪除了一些較不重要的數據以便更大程度地減少檔案大小。

檔案壓縮安全嗎?

是的,相對於資料的完整性來說,檔案壓縮是安全的,尤其是無失真壓縮。然而,如同所有檔案,被壓縮的檔案也可能受到惡意軟體或病毒的攻擊,所以總是需要有專業的安全軟體以保護。

什麼類型的檔案可以壓縮?

幾乎所有種類的檔案都可以被壓縮,包括文字檔案、圖像、音訊、視頻和軟體檔案。然而,壓縮程度可以因檔案類型而有顯著的不同。

什麼是ZIP檔?

ZIP檔是一種使用無失真壓縮以減少一個或多個檔案大小的檔案格式。在ZIP檔中的多個檔案被有效地打包為單一的檔案,這也讓分享變得更加容易。

我可以壓縮一個已經壓縮過的檔案嗎?

技術上可行,儘管額外的大小減少可能非常小或甚至適得其反。壓縮一個已經壓縮過的檔案有時可能會增加其大小,原因在於壓縮演算法所增加的metadata。

我該如何解壓壓縮的檔案?

解壓壓縮的檔案,通常需要一個解壓縮或解zip的工具,像是WinZip或7-Zip。這些工具可以从壓縮格式中提取原始檔案。