[Distutils] On vendoring binaries and headers with pypi packages

Nathaniel Smith njs at pobox.com
Mon May 15 15:47:40 EDT 2017


What are you trying to accomplish by putting include files into virtualenvs?

On May 15, 2017 10:29 AM, "Sylvain Corlay" <sylvain.corlay at gmail.com> wrote:

> Hi,
>
> When distributing python packages that depend on non-python components,
> the typical way of doing this with general-purpose package managers (linux
> distributions, conda) is to place binaries, headers, configuration and
> other artefacts for these components in their respective natural locations
> under the installation prefix (e.g. PREFIX/bin/, PREFIX/include/,
> PREFIX/etc/,  PREFIX/share/).
>
> Now, if I have a python package that depends on such a thing (e.g. pyzmq
> vs zmq), the pypi wheel for pyzmq will vendor a binary for libzmq as
> package data.
>
> For the case of the header files, there is the distutils `install_headers`
> directive, but the target directory is (typically) under
> PREFIX/include/PythonX.Y, which is probably only a good choices for headers
> of a C extension linked with this specific python installation.
>
> Would it make sense, when vendoring packages packages that don't depend on
> the python version in a wheel to use `data_files` instead, and target
> respectively the `bin`, `include`, `etc` and `share` subdirectories of the
> prefix?
>
> Specifically, for the headers, one could do
>
>
>     data_files      = [
>         ('include/foobar', [list of the foobar header files])),
>     ],
>
> Note: I was just using zmq as an example.
>
> Thanks,
>
> Sylvain
>
>
> _______________________________________________
> Distutils-SIG maillist  -  Distutils-SIG at python.org
> https://mail.python.org/mailman/listinfo/distutils-sig
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.python.org/pipermail/distutils-sig/attachments/20170515/4019e714/attachment-0001.html>


More information about the Distutils-SIG mailing list