Looks like your biggest Py3 issue is that distribute uses 2to3. "pip install -e" of course does not. It works much better otherwise. I put in some tiny changes to the other bits to make them work, and I can now install Pyramid from wheels on Py3.2.
On Mon, Jul 2, 2012 at 11:59 AM, Paul Moore <[email protected]> wrote: > Hmm, I'm a little confused as to how the bits hang together here. > Maybe some clarification would help. How close is the following? > > pip - your patch for this is to recognise wheel files and use > distribute to install them > distribute - your patch for this is to add support for installing > wheel files (and to add a bdist_wheel command for building them???) > wheel - support library for the above, provides functions to work with > wheel files > > Is that close? > > Assuming it is, I'm not sure I follow what you say in the paragraph > above - what is the cpython patch you mention? No longer important, just the first thing I tried. It is a bdist_wheel for distutils2 / packaging. It wound up being much more fun to write a setuptools/distribute plugin, so I finished there. The most important and most complete patch is probably pkg_resources.py (part of setuptools / distribute) to recognize the .dist-info directories and the Provides-Extra: extension. This is just PEP 386 and is not wheel specific. If 'markerlib' is installed it will interpret conditional requirements; markerlib should become standard/required. The distribution 'wheel' is the bdist_wheel setuptools plugin. It is also where a command line tool to manipulate wheel files would go. pip recognizes wheels and installs them itself. https://github.com/dholth/pip/blob/develop/pip/req.py#L759 It doesn't yet +x scripts or update .dist-info/RECORD to keep track of what it should uninstall. > Based on my interpretation of what you say above, the things I see > outstanding are: > > 1. wheel discovery and download from PyPI or local archives (so pip > install x will find and download x.whl before/as well as an x sdist) > 2. wheel upload to PyPI (probably needs PyPI changes to support the new > format) Also, we will be moving to urlsafe-b64encoded SHA256 instead of MD5 as the hash function. > 3. converters to allow people to convert eggs and bdist_wininst > binaries to wheel format (otherwise you have a chicken-and-egg problem > in that wheels are only good for speeding up installs, rather than for > installing things you can't build for yourself) Sure, although IMO egg2wheel is more of a roundabout way to get around the "pip doesn't support eggs" issue. Hopefully in most cases the maintainer or "someone with a compiler" will run bdist_wheel for you when a new version comes out. > (1) and (2) are longer-term requirements, and (3) may or may not be a > key requirement for you - in any case, others who do need the facility > could develop these independently. So it seems to me like you're > nearly there (assuming the pip and distribute maintainers accept your > patches). > > Paul. _______________________________________________ Distutils-SIG maillist - [email protected] http://mail.python.org/mailman/listinfo/distutils-sig
