[Distutils] Using Wheel with zipimport

Daniel Holth dholth at gmail.com
Wed Jan 29 02:19:51 CET 2014

On Tue, Jan 28, 2014 at 7:18 PM, Donald Stufft <donald at stufft.io> wrote:
> On Jan 28, 2014, at 6:38 PM, Nick Coghlan <ncoghlan at gmail.com> wrote:
> I think you're reading too much into that comment. Putting a wheel file
> directly on sys.path is no different from putting any other zipfile directly
> on sys.path - whether or not it will work depends on the context, but it's a
> useful capability if used responsibly (as we do in the ensurepip
> implementation).
> The key problems with eggs in relation to this were:
> - easy_install preferring to install as eggs by default
> - setuptools install a global site hook that added every installed egg to
> sys.path for every application run in that Python installation
> Neither of those applies to wheels - pip always unpacks them when
> installing, and if you want to add one to sys.path you have to do it
> manually, it doesn't happen automatically.
> All the new note in the PEP is clarifying is that it *isn't* an accident
> that the wheel format is zipimport compatible for pure Python wheels, we
> deliberately designed it that way (hence the "Root-is-purelib" setting,
> rather than requiring separate purelib and platlib subdirectories).
> Cheers,
> Nick.
> Regardless if it was or wasn't an accident, I believe it was a mistake.
> Supporting it officially at all means that we have limitations on what we
> can
> do to make Wheel a better format. I had hopes that Wheel could be made more
> generic than it currently is, but because of the fact that directly adding
> them to sys.path is supported that makes it much much more awkward to do so.

Hey, as long as they are zipfiles that don't totally scramble the
layout of the internal Python code you can add them to sys.path. Did
you know you can even add subpaths of a zipfile to sys.path? </mind

I'm opposed to making wheel generic as in "package PostgreSQL itself"
generic. There are other ways to do that.

More information about the Distutils-SIG mailing list