1) pip install pyarrow==0.14.0 2) All the pyarrow files including, for example libarrow.so.14, but not libarrow.so (hence the linker error)
Reproducible on Python 3.7.2 on linux mint 19.1 and debian docker: Example dockerfile: ``` FROM debian:unstable-slim RUN apt-get update && apt-get upgrade -y RUN apt-get install -y python3 python3-dev RUN apt-get install -y python3-pip RUN python3 -m pip install --upgrade pip RUN pip3 install Cython pyarrow COPY setup.py /root COPY test.pyx /root WORKDIR /root RUN python3 setup.py build_ext --inplace ``` Where setup.py and test.pyx are the files listed above, with an added call to numpy.get_include(). Appending ' ==0.13.0' to the 'RUN pip3 install...' line above results in the docker image building Steve On Thu, Jul 4, 2019 at 10:37 PM Antoine Pitrou <anto...@python.org> wrote: > > Hi, > > 1) How did you install PyArrow? > > 2) What does /usr/local/lib/python3.7/dist-packages/pyarrow contain? > > Regards > > Antoine. > > > Le 04/07/2019 à 22:10, Stestagg a écrit : > > Hi > > > > I've got a cython module that links against PyArrow, using the > > 'pyarrow.get_libraries()' associated methods. > > > > Builds on Windows and Linux are consitently failing against 0.14, but > > working on 0.12 to 0.13. > > > > Linux gives: > > x86_64-linux-gnu-g++ -pthread -shared -Wl,-O1 -Wl,-Bsymbolic-functions > > -Wl,-z,relro -Wl,-z,relro -g -fstack-protector-strong -Wformat > > -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 > > build/temp.linux-x86_64-3.7/test.o > > -L/usr/local/lib/python3.7/dist-packages/pyarrow -larrow -larrow_python > -o > > /home/dduser/att/arrowtest.cpython-37m-x86_64-linux-gnu.so > > /usr/bin/ld: cannot find -larrow > > /usr/bin/ld: cannot find -larrow_python > > collect2: error: ld returned 1 exit status > > error: command 'x86_64-linux-gnu-g++' failed with exit status 1 > > > > The windows build is more funky, but I'm still investigating. > > > > A minimal example is: > > > > setup.py: > > > > import pyarrow > > from Cython.Build import cythonize > > from distutils.command.build_clib import build_clib > > from distutils.core import setup, Extension > > > > > > OPTIONS = { > > 'sources': ["test.pyx"], > > 'language': "c++", > > 'include_dirs': [pyarrow.get_include()], > > 'libraries': pyarrow.get_libraries(), > > 'library_dirs': pyarrow.get_library_dirs() > > } > > > > setup( > > name='arrowtest', > > ext_modules = cythonize(Extension("arrowtest",**OPTIONS)), > > cmdclass = {'build_clib': build_clib}, > > version="0.1", > > ) > > > > test.pyx: > > > > import pyarrow as pa > > cimport pyarrow.lib as pa > > > > Thanks > > > > Steve > > >