-
Notifications
You must be signed in to change notification settings - Fork 159
Description
Ok, this might really be the wrong place to open this issue. But if this is the case, I'm just asking for proper redirection to people that have a better understanding.
My problem is made of two main constituents:
- I want to ship a compiled CLI in a Python package, and
- this CLI depend on a shared object (dynamic library, as you prefer)
Well, a few more extra details are that the CLI is written in Rust, depending on a C++ library, and I'm using maturin with bin bindings to package everything.
I believe this information to be irrelevant: at the end of the day, auditwheel is run, and I'm left with a wheel containing three folders:
- metadata in
mypackage-x.y.z.dist-info(irrelevant) - the binary in
mypackage-x.y.z.data/scripts - the shared object in
mypackage.libs
The package is already on PyPI, just in case someone wants to experiment. And there is a single wheel.
Now the problem: when I run pip install mypackage, the two folders with data and dist-info are copied inside env/lib/python3.x/site-packages, while the binary inside the data/scripts folder is directly copied in env/bin.
When I run it locally, everything works (this corresponds to run maturin develop). When I run it after pip install, it cries for missing symbols.
But if I check with strings or nm inside the shared object in mypackage.libs, the symbol is there.
I have not been able to make it work, not even changing LD_LIBRARY_PATH or RPATH env vars.
Any idea?