[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