[Distutils] wheels on sys.path clarification (reboot)

Donald Stufft donald at stufft.io
Thu Jan 30 06:38:32 CET 2014


On Jan 29, 2014, at 11:50 PM, Tres Seaver <tseaver at palladion.com> wrote:

> Signed PGP part
> On 01/29/2014 06:55 PM, Noah Kantrowitz wrote:
> 
> > If you are going to document this, and it is not going to be
> > explicitly supported by the spec (it isn't), the _only_ logical thing
> > is to document that this is undefined behavior and while it works now,
> > people should not depend on it. Under no circumstance should we
> > document this as "well it works right now" without guidance about the
> > fact that it isn't part of the spec and is _not_ a candidate for
> > future design decisions. If someone would like to propose amending the
> > spec that can happen separately, but as it stands right now this is
> > nothing but convenient, undefined behavior.
> 
> Nick's point in this thread is that zip-importability is a *necessary
> corrolary* (not an implementation detaiL) of the "no special installers"
> design choice.
> 
> - Given that there is a non-empty set of wheels which can be unpacked
>   to a filesystem-directory tree in a directory on sys.path, and that
>   some of those wheels are already known not to otherwise break zip-
>   importability, it is a logical necessity that such wheels can be
>   put onto sys.path without unpacking.  We already have existence proof
>   for this in software being released *by the folks who made these
>   specs*.
> 
> Noting is as such is the *point* of Nick's change.
> 
> 
> 
> Tres.
> --
> ===================================================================
> Tres Seaver          +1 540-429-0999          tseaver at palladion.com
> Palladion Software   "Excellence by Design"    http://palladion.com
> 
> 
> _______________________________________________
> Distutils-SIG maillist  -  Distutils-SIG at python.org
> https://mail.python.org/mailman/listinfo/distutils-sig

Also it’s entirely inaccurate that Zip import must be maintained in order to
support using unzip as a simple installer for simple Wheels. For instance if
Wheels instead used directories at the root named after sysconfig scheme names
then with your standard unzip tool you could simple do::

    unzip example.whl 'purelib/*'

Which is every bit as simple and not requiring a specialized installer but
ends up breaking zip import compatibility (Techincally you'd just need to add
the example.whl/purelib to the sys.path). However this is a change that wasn't
off the table in the original PEP, it is now in the PEP-by-fiat because we now
have to maintain zip import compatibility.
-----------------
Donald Stufft
PGP: 0x6E3CBCE93372DCFA // 7C6B 7C5D 5E2B 6356 A926 F04F 6E3C BCE9 3372 DCFA

-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 801 bytes
Desc: Message signed with OpenPGP using GPGMail
URL: <http://mail.python.org/pipermail/distutils-sig/attachments/20140130/24ccb712/attachment.sig>


More information about the Distutils-SIG mailing list