Your wheel can be a valid zip and still break installers. I built a checker for that.
说明与用途
zipgate 验证 wheel 文件中的 ZIP64 结构,检测导致安装程序失败的错误,允许在上传前修复。
问题
Large or retagged Python wheels may contain malformed ZIP64 structures that cause strict installers to fail, even though Python’s zipfile module tolerates them.
结果
zipgate successfully identified malformed ZIP64 structures in wheels retagged with wheel 0.47.0, while wheels built with wheel 0.48.0 passed validation.
工作流
- 1. Install zipgate via pip:
pip install zipgate - 2. Run zipgate against a wheel:
zipgate dist/*.whl - 3. Interpret exit codes: 0 = all valid, 1 = at least one invalid, 2 = unreadable
- 4. If invalid, investigate the reported rule violations (e.g., SPURIOUS_ZIP64_LOCAL).
证据
A 5.8 GiB PyTorch ROCm nightly wheel failed to install under uv with zip64 extended information field was too long
Both are the same class of problem: the ZIP64 extra field (0x0001) in the file doesn't match what APPNOTE 4.5.3 requires.
I parse local file headers and central directory entries by hand (not trusting zipfile) and validate…
The 0.47.0 output trips the exact rule the issue describes; 0.48.0 is clean.
- 记录日期: 2026-10-04T08:41:18.999Z