[Distutils] Wheel PEP

Daniel Holth dholth at gmail.com
Sun Sep 23 14:57:33 CEST 2012


> It's also not quite true that the contents of a wheel aren't
> importable - since they're still just a zipfile, they can still be
> added to an import path in the same manner as egg files. It's just not
> *recommended* to use them that way, as the format is designed
> primarily for use in distribution rather than runtime imports.

That is intentional, rather than the bdist_wininst scheme that puts
nothing but subdirectories at the root. I wouldn't be surprised if
someone writes a tool to append the appropriate .pyc to wheels.

PURELIB/
SCRIPTS/
HEADERS/

And fun fact, you can add a subpath of a zip file to PYTHONPATH. You
could probably import one of the wininst .exe files if you added
instaler.exe/PURELIB to your path. But in zip all those files in
PURELIB/ also represent an extra 8 uncompressed bytes len('PURELIB/')
for every entry in the most common path.

I may explicitly mention in the spec that wheel is allowed to compress
with xz or bz2. Those particular wheels would not be importable and
would only work on Python 3.3+.


More information about the Distutils-SIG mailing list