<div dir="ltr">OK thanks!<div><br></div><div>I want to create a pypi package for xtensor and xtensor-python, and would like it to place the headers in the same location as with the conda package or Debian packages.</div><div><br></div><div>(Which are essentially built with a regular</div><div>`cmake -D CMAKE_INSTALL_PREFIX=PREFIX; make install`)</div><div><br></div><div>The conda package puts things under `CONDA_PREFIX/include/xtensor[-python]` and the Debian package `/usr/include/xtensor[-python]`.</div><div><br></div><div>It seems that wheel's data_files can achieve that very simply, and was wondering if there was any drawback in this approach.</div><div><br></div><div>Sylvain<br><div><div><br></div></div></div></div><div class="gmail_extra"><br><div class="gmail_quote">On Mon, May 15, 2017 at 11:45 PM, Nathaniel Smith <span dir="ltr"><<a href="mailto:njs@pobox.com" target="_blank">njs@pobox.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="auto">No, I'm trying to ask, like, why you want that. Presumably you have some end goal in mind that you think this will help accomplish, and I think it would be helpful to know what that is :-).</div><div class="HOEnZb"><div class="h5"><div class="gmail_extra"><br><div class="gmail_quote">On May 15, 2017 2:42 PM, "Sylvain Corlay" <<a href="mailto:sylvain.corlay@gmail.com" target="_blank">sylvain.corlay@gmail.com</a>> wrote:<br type="attribution"><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr">Let's say that you have an anaconda installation, and you install the latest pyzmq from pypi instead of from the conda recipe.<div><br></div><div>I would like the vendored libzmq to be placed under `PREFIX/bin` and the headers under `PREFIX/include`, just as if I had either</div><div><br></div><div> - installed zmq with `cmake -D CMAKE_INSTALL_PREFIX=PREFIX` and `make install`<br></div><div> - or installed the zeromq from the conda package.</div><div><br></div><div>Similarly, for a system-wide install on linux distribution, the same would hold with PREFIX=/usr</div></div><div class="gmail_extra"><br><div class="gmail_quote">On Mon, May 15, 2017 at 9:47 PM, Nathaniel Smith <span dir="ltr"><<a href="mailto:njs@pobox.com" target="_blank">njs@pobox.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="auto">What are you trying to accomplish by putting include files into virtualenvs?</div><div class="gmail_extra"><br><div class="gmail_quote"><div><div class="m_-7347115423577671243m_-8513180810649647760h5">On May 15, 2017 10:29 AM, "Sylvain Corlay" <<a href="mailto:sylvain.corlay@gmail.com" target="_blank">sylvain.corlay@gmail.com</a>> wrote:<br type="attribution"></div></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div><div class="m_-7347115423577671243m_-8513180810649647760h5"><div dir="ltr">Hi,<div><br></div><div>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/).</div><div><br></div><div>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.</div><div><br></div><div>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.</div><div><br></div><div>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?</div><div><br></div><div>Specifically, for the headers, one could do</div><div><br></div><div><br></div><div><div><font face="monospace, monospace">    data_files      = [</font></div><div><font face="monospace, monospace">        ('include/foobar', [list of the foobar header files])),</font></div><div><font face="monospace, monospace">    ],</font></div></div><div><br></div><div>Note: I was just using zmq as an example.</div><div><br></div><div>Thanks,</div><div><br></div><div>Sylvain</div><div><br></div></div>
<br></div></div>______________________________<wbr>_________________<br>
Distutils-SIG maillist  -  <a href="mailto:Distutils-SIG@python.org" target="_blank">Distutils-SIG@python.org</a><br>
<a href="https://mail.python.org/mailman/listinfo/distutils-sig" rel="noreferrer" target="_blank">https://mail.python.org/mailma<wbr>n/listinfo/distutils-sig</a><br>
<br></blockquote></div></div>
</blockquote></div><br></div>
</blockquote></div></div>
</div></div></blockquote></div><br></div>