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@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@python.org https://mail.python.org/mailman/listinfo/distutils-sig