[Distutils] Distutils improvements regarding header installation and building C extension modules

Tim Smith tim at tim-smith.us
Wed May 25 14:35:29 EDT 2016


On Wed, May 25, 2016 at 1:24 PM Sylvain Corlay <sylvain.corlay at gmail.com>
wrote:
> *2) On the need for something like pip.locations.distutils_scheme in
> distutils*
> (http://bugs.python.org/issue26955)
>
> When installing a python package that has a directive for the install_headers
> distutils command, these headers are usually installed under the main
> python include directory, which can be retrieved with
> sysconfig.get_path('include') or directly referred to as the 'include' string
> when setting the include directories of an extension module.
>
> However, on some systems like OS X, headers for extension modules are not
> located in under the python include directory
>
> /usr/local/Cellar/pythonX/X.Y.Z/Frameworks/Python.framework/Versions/X.Y/include/pythonX.Y
>
> but in
>
> /usr/local/include/pythonX.Y.
>
> Is there a generic way to find the location where headers are installed in
> a python install? pip.locations has a distutils_scheme function which seems
> to be returning the right thing, but it seems to be a bit overkill to
> require pip. On the other side, no path returned by sysconfig corresponds
> to `/usr/local/include/pythonX.Y`.

As a Homebrew maintainer this sounds like something that Homebrew
could influence. Are there any packages in the wild that use this
mechanism? It seems that headers are mostly installed beneath
site-packages. I don't have strong feelings about whether Homebrew
should have better support for install_headers or whether that would
be straightforward to implement but IIRC we've had no prior reports of
this causing trouble.

Thanks,
Tim


More information about the Distutils-SIG mailing list