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

Daniel Holth dholth at gmail.com
Fri Jun 13 14:29:06 CEST 2014


https://github.com/pypa/pip/issues/1870

On Fri, Jun 13, 2014 at 7:13 AM, Ryan Kelly <ryan at rfk.id.au> wrote:
> 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