-
Notifications
You must be signed in to change notification settings - Fork 150
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
ImportError: a library correctly found and included by auditwheel
is not found on package use.
#363
Comments
Would you be by any chance in the same situation as #257 ? |
Looks like it!
Unfortunately there seems to be no workaround (or fix, since the bug is still open), right? Is there anything you can suggest I can try? |
Wrote a small script that patches the rpaths in our wheels post auditwheel. In case you're interested, it's easily adapted for your situation: https://github.com/arbor-sim/arbor/blob/3dc2f266ecb09e535ab35d878fd3a8375e7d2fa8/scripts/patchwheel.py |
- build-catalogue - now installed by pip - enable GPU-backends - isolate from being installed in a non-default dir - rename to arbor-build-catalogue - allow hand-written C++ mechanisms to be linked in the same catalogue. - CMake - enable PIC on arbor always to allow linking to shared objects - use relative paths when configuring a-b-c, to make relocation less of a problem - Python - ensure a-b-c is installed by pip, along with headers and libarbor.a - throw errors if tools (cmake scripts, arbor package, modcc) missing - transition setup.py setuptools -> skbuild. - Wheels - Add NML2 support to wheels - scripts/build-wheels.sh builds wheels, in principle valid for submission to PyPI, on your own hardware. This should be kept in sync with .github/workflows/ciwheel.yml - scripts/patchwheel.py corrects the rpath in the libraries in the wheels, working around a bad interplay between auditwheel and skbuild, see pypa/auditwheel#363 - Python Wheels are tested as part of the Github Action - Add nml and bundled status to config().
- build-catalogue - now installed by pip - enable GPU-backends - isolate from being installed in a non-default dir - rename to arbor-build-catalogue - allow hand-written C++ mechanisms to be linked in the same catalogue. - CMake - enable PIC on arbor always to allow linking to shared objects - use relative paths when configuring a-b-c, to make relocation less of a problem - Python - ensure a-b-c is installed by pip, along with headers and libarbor.a - throw errors if tools (cmake scripts, arbor package, modcc) missing - transition setup.py setuptools -> skbuild. - Wheels - Add NML2 support to wheels - scripts/build-wheels.sh builds wheels, in principle valid for submission to PyPI, on your own hardware. This should be kept in sync with .github/workflows/ciwheel.yml - scripts/patchwheel.py corrects the rpath in the libraries in the wheels, working around a bad interplay between auditwheel and skbuild, see pypa/auditwheel#363 - Python Wheels are tested as part of the Github Action - Add nml and bundled status to config().
I'm building a wheel for the Arbor Python package, which is a C++ codebase that depends on
libxml2
. I'm running into the problem that despite the build succeeding, auditwheel correctly finding thelibxml*.so*
and including it, the execution of our tests fails withImportError: libxml2-3998bec4.so.2.9.1: cannot open shared object file: No such file or directory
.The workflow uses the
cibuildwheel
action, but I can reproduce the exact same error with local builds using thepypa/manylinux2014_x86_64
image. See here the output of the workflow at a relevant point: https://github.com/arbor-sim/arbor/runs/4618790432?check_suite_focus=true#step:3:394auditwheel show
on a locally produced wheel showslibxml2-3998bec4.so.2.9.1
being included:Not sure what might be the problem here, or what to do to solve it. Any help is appreciated!
The text was updated successfully, but these errors were encountered: