[Distutils] Working toward Linux wheel support

Leonardo Rochael Almeida leorochael at gmail.com
Tue Jul 21 17:07:05 CEST 2015

Hi Tres,

On 21 July 2015 at 00:25, Tres Seaver <tseaver at palladion.com> wrote:

> [...]
> Even given the "over-specified" platform tags Nick suggests, linux wheels
> won't fully work, because the build-time depes won't be satisfiable *by
> pip*:  the burden will be on each project to attempt a build and then
> spit out an error message trying to indicate the missing system package.

Actually, since they're wheels, they´re already built, so installing them
will work perfectly. Trying to use them is what's going to fail with a
message like:

ImportError: libxslt.so.1: cannot open shared object file: No such file or

I do think Nate's proposal is a step forward[1], since being unable to use
the package because a runtime dependency is not installed is no more of a
problem than being unable to install a source package because a build
dependency is not installed. And the package documentation could always
specify which system packages are needed for using the wheel.

If anything, the error message tends to be smaller, whereas a missing .h
from a missing development package usually causes a huge stream of error
messages on build, only the first of which is actually relevant. Then
again, an import error could happen anywhere in the middle of running the
software, so in some cases the error might not be obvious at first.

My proposal (that wheels should specify the system file dependencies in
terms of abstract locations) would allow pip to provide a much more
user-friendly information about the missing file, in the earliest possible
moment, allowing for the user to hunt (or compile) the system package at
the same moment as he's installing the python package.

This information is readily derived during the build process, making it's
inclusion in the wheel info straightforward.

But I don't think my proposal should block acceptance of Nate's.

[1] As long as the acceptance of the over-specified wheels is a strictly
opt-in process. Some linux folks don't like running code they haven't


-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.python.org/pipermail/distutils-sig/attachments/20150721/aed92b51/attachment.html>

More information about the Distutils-SIG mailing list