Hello Tim,

thanks for the hint. I see that you build arrow by yourselves in the 
Dockerfile. Could it be that in the end you statically link the arrow libraries?

As there are no wheel on PyPI, I couldn't verify whether that assumption is 
true.

Best
Uwe

On Thu, Jul 2, 2020, at 4:53 PM, Tim Paine wrote:
> We spent a ton of time on this for perspective, the end result is a 
> mostly compatible set of wheels for most platforms, I believe we 
> skipped py2 but nobody cares about those anyway. We link against 
> libarrow and libarrow_python on Linux, on windows we vendor them all 
> into our library. Feel free to scrape the perspective repo's cmake 
> lists and setup.py for details.
> 
> Tim Paine
> tim.paine.nyc
> 
> > On Jul 2, 2020, at 10:32, Uwe L. Korn <uw...@xhochy.com> wrote:
> > 
> > I had so much fun with the wheels in the past, I'm now a happy member of 
> > conda-forge core instead :D
> > 
> > The good thing first:
> > 
> > * The C++ ABI didn't change between the manylinux versions, it is the old 
> > one in all cases. So you mix & match manylinux versions.
> > 
> > The sad things:
> > 
> > * The manylinuxX standard are intented to provide a way to ship 
> > *self-contained* wheels that run on any recent Linux. The important part 
> > here is that they need to be self-contained. Having a binary dependency on 
> > another wheel is actually not allowed.
> > * Thus the snowflake-python-connector ships the libarrow.so it was build 
> > with as part of its wheel. In this case auditwheel is happy with the wheel.
> > * It is working with numpy as a dependency because NumPy linkage is similar 
> > to the import lib behaviour on Windows: You don't actually link against 
> > numpy but you statically link a set of functions that are resolved to 
> > NumPy's function when you import numpy. Quick googling leads to 
> > https://github.com/yugr/Implib.so which could provide something similar for 
> > Linux.
> > * You could actually omit linking to libarrow and try to populate the 
> > symbols before you load the library. This is how the Python symbols are 
> > available to extensions without linking to libpython.
> > 
> > 
> >> On Thu, Jul 2, 2020, at 2:43 PM, Maarten Breddels wrote:
> >> Ok, thanks!
> >> 
> >> I'm setting up a repo with an example here, using pybind11:
> >> https://github.com/vaexio/vaex-arrow-ext
> >> 
> >> and I'll just try all possible combinations and report back.
> >> 
> >> cheers,
> >> 
> >> Maarten Breddels
> >> Software engineer / consultant / data scientist
> >> Python / C++ / Javascript / Jupyter
> >> www.maartenbreddels.com / vaex.io
> >> maartenbredd...@gmail.com +31 6 2464 0838 <+31+6+24640838>
> >> [image: Twitter] <https://twitter.com/maartenbreddels>[image: Github]
> >> <https://github.com/maartenbreddels>[image: LinkedIn]
> >> <https://linkedin.com/in/maartenbreddels>[image: Skype]
> >> 
> >> 
> >> 
> >> 
> >> Op do 2 jul. 2020 om 14:32 schreef Joris Van den Bossche <
> >> jorisvandenboss...@gmail.com>:
> >> 
> >>> Also no concrete answer, but one such example is turbodbc, I think.
> >>> But it seems they only have conda binary packages, and don't
> >>> distribute wheels ..
> >>> (https://turbodbc.readthedocs.io/en/latest/pages/getting_started.html),
> >>> so not that relevant as comparison (they also need to build against an
> >>> odbc driver in addition to arrow).
> >>> But maybe Uwe has some more experience in this regard (and with
> >>> attempts building wheels for turbodbc, eg
> >>> https://github.com/blue-yonder/turbodbc/pull/108).
> >>> 
> >>> Joris
> >>> 
> >>> On Thu, 2 Jul 2020 at 11:05, Antoine Pitrou <anto...@python.org> wrote:
> >>>> 
> >>>> 
> >>>> Hi Maarten,
> >>>> 
> >>>> Le 02/07/2020 à 10:53, Maarten Breddels a écrit :
> >>>>> 
> >>>>> Also, I see pyarrow distributes manylinux1/2010/2014 wheels. Would a
> >>> vaex
> >>>>> extension distributed as a 2010 wheel, and build with the pyarrow 2010
> >>>>> wheel, work in an environment where someone installed a pyarrow 2014
> >>>>> wheel, or build from source, or installed from conda-forge?
> >>>> 
> >>>> I have no idea about the concrete answer, but it probably depends
> >>>> whether the libstdc++ ABI changed between those two versions.  I'm
> >>>> afraid you'll have to experiment yourself.
> >>>> 
> >>>> (if you want to eschew C++ ABI issues, you may use the C Data Interface:
> >>>> https://arrow.apache.org/docs/format/CDataInterface.html
> >>>> though of course you won't have access to all the useful helpers in the
> >>>> Arrow C++ library)
> >>>> 
> >>>> Regards
> >>>> 
> >>>> Antoine.
> >>>> 
> >>>> 
> >>> 
> >> 
>

Reply via email to