[Distutils] What does it mean for Python to "bundle pip"?

Ronald Oussoren ronaldoussoren at mac.com
Fri Aug 23 08:22:18 CEST 2013


On 23 Aug, 2013, at 0:52, Paul Moore <p.f.moore at gmail.com> wrote:

> On 22 August 2013 23:08, Chris Barker - NOAA Federal <chris.barker at noaa.gov> wrote:
> I want to give it a shot for OS-X -- no one seems to want to maintian
> bdist_mpkg, and it's time to move forward...
> 
> My impression is that the architecture and "fat binary" stuff on OSX is the bit that may bite you. I know little or nothing about OSX, but I'm sure if you try and report on how you get on, the people on the list will be able to help you get things sorted and we will be able to get any dark corners ironed out.

I don't really expect problems on OSX, I've used binary eggs in the past and those work just fine. Wheels seem to be simular enough to eggs to not expect problems there either.

The one thing that might be problematic later on is that distutils (and hence setuptools and eggs) uses labels for sets of architectures in fat binaries, while wheels can describe those directly. That is, distutils uses "intel" as the architecture string for the set {i386, x86_64}, while wheel can use something like "darwin_i386.darwin_x86_64" (through PEP 425, the actual value may be different as this is based on a light rereading of the pep).  That is an optional difference and can be ignored for now.

Note that fat binaries are not at all problematic from the point of view of installing a wheel, a fat binary is a single file that happens to work on multiple CPU archectures.  Creating a structure that would allow for wheels that support both 32-bit and 64-bit Windows is harder because you'd have two .pyd files that obviously cannot have the same path in the filesystem or wheel archive (but easily solved by another level of indirection, such as ".pyext" directory that can contain extension files whose name is the result of distutils.util.get_platform()).

Ronald



More information about the Distutils-SIG mailing list