Skip to content

Instantly share code, notes, and snippets.

@drin
Last active September 20, 2021 22:11
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save drin/5dbda4aa546c3bf4a0058cd1402d5b4d to your computer and use it in GitHub Desktop.
Save drin/5dbda4aa546c3bf4a0058cd1402d5b4d to your computer and use it in GitHub Desktop.
Arrow from C++ and python
(my-poetry-venv) 14:17 >> python
Python 3.9.6 (default, Jun 30 2021, 10:22:16)
[GCC 11.1.0] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> import pyarrow
>>> pyarrow.__file__
'<path-to-my-poetry-venv>/lib/python3.9/site-packages/pyarrow/__init__.py'
>>> quit()
(my-poetry-venv) 15:00 >> ldd <path-to-my-poetry-venv>/lib/python3.9/site-packages/pyarrow/lib.cpython-39-x86_64-linux-gnu.so
linux-vdso.so.1 (0x00007fff275eb000)
libarrow.so.500 => /usr/local/lib/libarrow.so.500 (0x00007fafa5ac6000)
libarrow_python.so.500 => /usr/local/lib/libarrow_python.so.500 (0x00007fafa5953000)
libdl.so.2 => /usr/lib/libdl.so.2 (0x00007fafa594c000)
libstdc++.so.6 => /usr/lib/libstdc++.so.6 (0x00007fafa5736000)
libm.so.6 => /usr/lib/libm.so.6 (0x00007fafa55f2000)
libgcc_s.so.1 => /usr/lib/libgcc_s.so.1 (0x00007fafa55d7000)
libc.so.6 => /usr/lib/libc.so.6 (0x00007fafa5409000)
libcrypto.so.1.1 => /usr/lib/libcrypto.so.1.1 (0x00007fafa512a000)
libssl.so.1.1 => /usr/lib/libssl.so.1.1 (0x00007fafa5098000)
libre2.so.9 => /usr/lib/libre2.so.9 (0x00007fafa502e000)
librt.so.1 => /usr/lib/librt.so.1 (0x00007fafa5023000)
libz.so.1 => /usr/lib/libz.so.1 (0x00007fafa5009000)
libpthread.so.0 => /usr/lib/libpthread.so.0 (0x00007fafa4fe6000)
/usr/lib64/ld-linux-x86-64.so.2 (0x00007fafa6fb0000)
# This assumes we created a build directory in the "cpp" directory of the arrow repo
PATH_TO_ARROW_CPP_SOURCE=".."
cmake -DARROW_COMPUTE=ON \
-DARROW_GANDIVA=ON \
-DARROW_DATASET=ON \
-DARROW_FLIGHT=ON \
-DARROW_PARQUET=ON \
-DARROW_CSV=ON \
-DARROW_FILESYSTEM=ON \
-DARROW_PYTHON=ON \
-DCMAKE_BUILD_TYPE=Release \
${PATH_TO_ARROW_CPP_SOURCE}
make
# may have to be sudo depending on install prefix
make install
# This is the default install prefix, or at least my install prefix
ARROW_CPP_PREFIX="/usr/local"
env PYARROW_CMAKE_OPTIONS="-DArrowPython_DIR=${ARROW_CPP_PREFIX}/lib/cmake/arrow" \
python3 -m pip install --no-binary :all: pyarrow
(my-poetry-venv) 15:03 >> uname -r
5.13.13-arch1-1
(my-poetry-venv) 15:03 >> python --version
Python 3.9.6
(my-poetry-venv) 15:03 >> poetry show
astroid 2.6.6 An abstract syntax tree for Python with inference support.
cython 0.29.24 The Cython compiler for writing C extensions for the Python language.
isort 5.9.3 A Python utility / library to sort Python imports.
lazy-object-proxy 1.6.0 A fast and thorough lazy object proxy.
mccabe 0.6.1 McCabe checker, plugin for flake8
numpy 1.21.2 NumPy is the fundamental package for array computing with Python.
pandas 1.3.2 Powerful data structures for data analysis, time series, and statistics
pyarrow 5.0.0 Python library for Apache Arrow
pylint 2.9.6 python code static checker
python-dateutil 2.8.2 Extensions to the standard Python datetime module
pytz 2021.1 World timezone definitions, modern and historical
scipy 1.7.1 SciPy: Scientific Library for Python
six 1.16.0 Python 2 and 3 compatibility utilities
toml 0.10.2 Python Library for Toms Obvious, Minimal Language
wrapt 1.12.1 Module for decorators, wrappers and monkey patching.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment