The “missing” libwx_gtk3u_html-3.0.so.0 library is actually right there, but even an ldd _xrc.cpython-36m-x86_64-linux-gnu.so marks it as not found. wxPython was built from wxPython-4.0.0rc1.dev3641+54837c1.tar.gz using pip3 install, as advised in the Phoenix installation howto.
After looking around with ldd and objdump, it seems like any indirect library dependencies are not found, while direct .so deps are found in the same directory as the _xrc.*.so OR in the current working directory. What strikes me is that after copying the .so files to the current directory (from where python3 was invoked), they are found by ldd as well as python3 itself.
The "missing" libwx_gtk3u_html-3.0.so.0 library is actually right
there, but even an `ldd _xrc.cpython-36m-x86_64-linux-gnu.so` marks it
as not found. wxPython was built from
wxPython-4.0.0rc1.dev3641+54837c1.tar.gz using pip3 install, as
advised in the Phoenix installation howto.
After looking around with ldd and objdump, it seems like any indirect
library dependencies are not found, while direct .so deps are found in
the same directory as the _xrc.*.so OR in the current working
directory. What strikes me is that after copying the .so files to the
current directory (from where python3 was invoked), they are found by
ldd as well as python3 itself.
The build sets LD_RUN_PATH=$ORIGIN while building wxWidgets and
wxPython. That should be setting the rpath in the binaries such that it
will look first in the same folder where the loading entity (the
extension modules in our case) is located. It works fine on my various
linux boxes, so maybe there is something on your system that is
disrupting that feature. Do you have any LD_* variables set in your
environment? Googling rpath, $ORIGIN, and your distro version may turn
up some additional details or hints. One thing that leaves me a bit
confused is why this happens when importing the _xrc extension, but not
the others.
If all else fails you should be able to set LD_LIBRARY_PATH to include
the wx package folder where the wx shared libs are located, or you can
try using the chrpath system tool to view and/or change the rpath
settings in the extension modules.
The build sets LD_RUN_PATH=$ORIGIN while building wxWidgets and
wxPython.
André, I just noticed that LD_RUN_PATH is only being set for the wxPython part of the build, so there's a good chance that is the source of the problem although I don't understand why it wouldn't be happening for me too.
Please try rebuilding with the attached patch and see if it fixes the problem for you. To do this build you will need to start with the source tarball and not use pip for the build.
1. Unpack the source tarfile
2. Apply the patch to build.py
3. Run `python build.py build bdist_wheel`
That will give you a wheel file you can then install with pip in your Python environment or virtual environment.
Thanks for your quick response. I would have stayed longer on IRC, but
couldn't keep my family waiting at home any longer. Time zones, I'm in
Europe
Please try rebuilding with the attached patch and see if it fixes the problem for you. To do this build you will need to start with the source tarball and not use pip for the build.
I can confirm that with your patch applied, the libraries are found
correctly. Now on to fixing other XRC-related errors in Phoenix...
If you don't mind, I'll answer the question on StackOverflow. Need to
earn reputation after just signing up over there for this issue.
By the way, congratulations for the 4.0.0 release! This patch will
then land in the first point release?
Kind regards
André
···
On Wed, Jan 31, 2018 at 11:34 PM, Robin Dunn <robin@alldunn.com> wrote: