<p dir="ltr"><br>
On 30 Jan 2014 00:28, "Vinay Sajip" <<a href="mailto:vinay_sajip@yahoo.co.uk">vinay_sajip@yahoo.co.uk</a>> wrote:<br>
><br>
> > It may be useful to understand that wheel has *political features* or<br>
> > if you prefer *setting the defaults based on what we have learned from<br>
> > eggs*. I don't recommend that they be zip-imported generally<br>
> > but if you are a consenting adult who understands the caveats you<br>
> > may do so.<br>
><br>
> What *exactly* have we learned from eggs? We've learned that sys.path<br>
> manipulation under the hood is bad, because sys.path is important to system<br>
> behaviour and because the ramifications of changing it under the hood are unpredictable.<br>
><br>
> But we don't let that lead to a mindset that prohibits *any* sys.path manipulation - it's vital<br>
> in many situations to be able to manipulate sys.path in a controlled way.<br>
><br>
> What *else* have we learned from eggs? If we leave to one side the sys.path manipulation<br>
> issues, what else has been problematic about the egg format? Details seem hard to find,<br>
> though there's lots of talk in general about "pain" and "weirdness". I'm asking because I<br>
> really want to understand at a more detailed level what those problems are, because I<br>
> would be interested in trying to solve them, or minimise their impact. That might sound<br>
> naïve to some - but there it is.</p>
<p dir="ltr">I went through this with Chris McDonough back when packaging was dropped from 3.3, and he really helped me focus on what I found to be the two closely related core problems:</p>
<p dir="ltr">- implicit sys.path manipulation<br>
- installing as eggs by default</p>
<p dir="ltr">That was due to easy_install defaults being chosen for the Chandler use case rather than installing into a shared environment, but the egg format (and zip imports in general) still ended up being tainted by association.</p>

<p dir="ltr">More recently, I've become concerned about the way setuptools/easy_install assumes that an egg is zip import compatible in the absence of clear markers that it isn't.</p>
<p dir="ltr">pip's wheel support avoids those issues, because the normal workflows just install things normally. It takes special effort to go to the trouble of keeping a wheel file *as* a wheel and then putting it on sys.path later.</p>

<p dir="ltr">distlib.mount already has the virtue of always being opt-in from the user point of view, and the C extension support is opt-in from the publisher point of view, but it would be improved by needing the publisher to opt in to declaring support for zipimport (or meta imports in general), rather than letting end users deal with debugging obscure errors from code that assumes it has been fully installed.</p>

<p dir="ltr">Cheers,<br>
Nick.</p>
<p dir="ltr">><br>
> Regards,<br>
><br>
> Vinay Sajip<br>
><br>
> _______________________________________________<br>
> Distutils-SIG maillist  -  <a href="mailto:Distutils-SIG@python.org">Distutils-SIG@python.org</a><br>
> <a href="https://mail.python.org/mailman/listinfo/distutils-sig">https://mail.python.org/mailman/listinfo/distutils-sig</a><br>
</p>