Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Python: Deterministic position of libarrow in manylinux1 wheels #16202

Closed
asfimport opened this issue Feb 18, 2017 · 4 comments
Closed

Python: Deterministic position of libarrow in manylinux1 wheels #16202

asfimport opened this issue Feb 18, 2017 · 4 comments

Comments

@asfimport
Copy link

To link other Python wheels to the pyarrow, the position and name of all shared libraries should be deterministic. Currently using libarrow in other Python packages is only possible using the conda packaging stack, via pip installable paths.

Reporter: Uwe Korn / @xhochy
Assignee: Uwe Korn / @xhochy

Note: This issue was originally created as ARROW-566. Please see the migration documentation for further details.

@asfimport
Copy link
Author

Wes McKinney / @wesm:
Well, the shared libraries need to end up effectively in $LD_LIBRARY_PATH or loaded dynamically – conda works as a tool for building a LD_LIBRARY_PATH for the libarrow shared libraries. One option you can use is to load the libpyarrow.so using ctypes based on the absolute module path of pyarrow (this is similar to how NumPy's C-level interoperability works). I presume you're statically-linking the dependencies in pyarrow?

@asfimport
Copy link
Author

Uwe Korn / @xhochy:
libarrow* and libparquet* are dynamically linked currently in the wheels. The correct RPATH is set via auditwheel but also a hash is appended at the end of the libname so that different wheels can have different versions of the same library. As pyarrow is the main authority for libarrow in a pip-based setup, there should be no need for the hash-based suffix. The main things to tackle in this issue are:

  • Set the correct RPATHs in libpyarrow and libparquet_arrow
  • Bundle the above shared libraries in pyarrow.

My main intention is to build turbodbc wheels based upon pyarrow wheels but this should also be needed for any python package consuming both the C++ and Python API of Arrow.

@asfimport
Copy link
Author

Uwe Korn / @xhochy:
PR: #360

@asfimport
Copy link
Author

Wes McKinney / @wesm:
Issue resolved by pull request 360
#360

@asfimport asfimport added this to the 0.3.0 milestone Jan 11, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

2 participants