[Distutils] ctypes and shared libs, and wheels, oh my!

Ryan Kelly ryan at rfk.id.au
Fri Jun 13 13:13:18 CEST 2014


On 12/06/2014 2:09 AM, Daniel Holth wrote:
> This is in the bug tracker already. We need to add the py2-none-arch
> tags etc. to Pip's list.

Thanks Daniel, can you please link me to the specific bug?  I couldn't
find it in the pip issue tracker, but I could easily have been looking
wrong.

  Cheers,

    Ryan

> On Jun 11, 2014 12:05 PM, "Chris Barker" <chris.barker at noaa.gov
> <mailto:chris.barker at noaa.gov>> wrote:
> 
>     Folks,
> 
>     I'm trying to help figure out how to do binary wheels for a package
>     that relies on ctypes and a bundles shared lib (dll, .so. etc)
> 
>     The trick here is that the python code is quite version and platform
>     independent: py2 and py3, version 2.7 and 3.3+ (I think)
> 
>     (it's py_enchant, if anyone is
>     interested: http://pythonhosted.org/pyenchant/)
> 
>     So the trick is that the binary wheel will be platform dependent,
>     but not the code itself, so ideally we'd have one wheel, that for
>     instance (and teh case at hand) should work on any OS-X box version
>     10.6 and above, with a any of python2.7, 3.3, 3.4 (an up?)
> 
>     Usually, a binary wheel involves  compiled extensions, and thus is
>     tied to a particular python version -- so this is an odd case.
> 
>     We tried:
> 
>     pyenchant-1.6.6-py2.py3-none-macosx_10_6_intel.whl 
> 
>     which seems to be saying: any version of python2 or python 3, but
>     only on macosx 10.6
> 
>     but trying to install that on my machine (py2.7, os-x 10.6) gives:
> 
>     pyenchant-1.6.6-py2.py3-none-macosx_10_6_intel.whl is not a
>     supported wheel on this platform.
> 
>     (side note: it would be really great if that could be a more useful
>     message -- what part of the file name didn't match? I know that's a
>     trick, as there is a whole pile of heuristics to go through, but
>     maybe a way to dump that process would be helpful...)
> 
>     Now, this may, in fat be tied to CPython (I have no idea if ctypes
>     is available on pypy or jython or IronPython...). So I tried:
> 
>     pyenchant-1.6.6-cp27-none-macosx_10_6_intel.whl 
> 
>     that does, indeed, install on my system.
> 
>     Also:
> 
>     pyenchant-1.6.6-cp27.cp33-none-macosx_10_6_intel.whl
> 
>     works.
> 
>     As 2.7 is really the only py2 that much matters, no biggie, but is
>     there a way to get 3.3 and 3.4 and ??? all at once (I don't have py3
>     on that machine, so didn't test that...)
> 
>     So: how should this be done? Is the above the best option there is?
> 
>     Thanks,
>       -Chris



More information about the Distutils-SIG mailing list