[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