[Distutils] Packages that have problems being installed from wheels

Marcus Smith qwcode at gmail.com
Wed Aug 27 20:09:31 CEST 2014


There are cases where projects do this in setup.py:

for scheme in INSTALL_SCHEMES.values():
    scheme['data'] = scheme['purelib']

e.g.  https://github.com/celery/django-celery/blob/master/setup.py#L80

so for the sdist install, data ends up relative to site-packages, whereas
for the whl install, it ends up relative to sys.prefix




On Tue, Aug 26, 2014 at 11:50 PM, Paul Moore <p.f.moore at gmail.com> wrote:

> tl; dr; If you know of a project that can't be successfully installed
> with "pip wheel proj; pip install /path/to/the/wheel.whl" can you let
> me know the details?
>
> One of the longer-term goals of the introduction of wheels was to
> split the build and install steps for a package - specifically, in
> pip, to restrict "pip install" to installing from wheels, and when no
> wheel is available, to (transparently) run "pip wheel" on the sdist
> followed by "pip install on the generated wheel". During a discussion
> yesterday, I realised that I don't know how close we are to that goal.
> So I'm looking for information on packages which don't install
> properly from wheels at the moment. If anyone has examples of packages
> where replacing "pip install foo" with "pip wheel -w /tmp/xxx; pip
> install /tmp/xxx/*.whl" does not result in an equivalent install,
> could they post them here with details of how & why they fail?
>
> Things I already know about (but would like specific examples):
>
> 1. Post-install steps included in setup.py. That should be covered by
> the support in Metadata 2.0. I'd also be interested in how much of an
> issue omitting the postinstall would be in practice (for instance many
> such steps just set up "Start Menu" type shortcuts, which are not
> essential for the package to be usable).
> 2. Actually, that's the only one :-)
>
> Things that should not be a problem (but might be):
>
> 1. Numpy (and the scipy stack) need better tagging facilities for
> wheels - but that wouldn't matter for a wheel that's built, used, then
> thrown away.
> 2. Some things are complex to build - but I don't know of any cases
> where building a wheel is *more* complex than installing, and I don't
> see how it could be, in theory.
> 3. Projects that customise setup.py so much that they aren't
> compatible with setuptools and bdist_wheel. Such projects are quite
> probably already incompatible with pip (which injects setuptools when
> running setup.py anyway) and so not relevant for this discussion. But
> if any do work with "pip install" but not "pip wheel", I'd like to
> hear about them.
>
> Thanks in advance for any information.
> Paul
> _______________________________________________
> Distutils-SIG maillist  -  Distutils-SIG at python.org
> https://mail.python.org/mailman/listinfo/distutils-sig
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.python.org/pipermail/distutils-sig/attachments/20140827/30ee4261/attachment.html>


More information about the Distutils-SIG mailing list