smistad / FAST

A framework for high-performance medical image processing, neural network inference and visualization
https://fast.eriksmistad.no
BSD 2-Clause "Simplified" License
433 stars 101 forks source link

[Ubuntu 23] Installing pip pyfast error #195

Closed quancore closed 7 months ago

quancore commented 9 months ago

I have installed the pyfast using pip but it gives an error when I try to import: image

I have installed all the requirements, I have CUDA, cuda-toolkit installed already. I am using ubuntu 23.10

smistad commented 9 months ago

I have not tested FAST on Ubuntu 23 yet. But based on the output here, there seems to be some compatibility issues here.

Note to self: libcairo.so.2 on ubuntu 20.04 doesn't have the pixman_image_set_dither symbol either.. Is this an issue related to the pixman library?

Can you provide me the output of ldd /home/baran/micromamba/envs/image_classification/lib/python3.10/site-packages/fast/lib/libFAST.so This should list the libraries it is trying to load.

quancore commented 9 months ago

THank you for the prompt response. There was no libFAST.so file but libFAST.so.4, here is the output

linux-vdso.so.1 (0x00007ffce91e4000)
    libOpenCL.so.1 => /home/baran/micromamba/envs/image_classification/lib/python3.10/site-packages/fast/lib/./../lib/libOpenCL.so.1 (0x00007fd97de00000)
    libQt5Core.so.5 => /home/baran/micromamba/envs/image_classification/lib/python3.10/site-packages/fast/lib/./../lib/libQt5Core.so.5 (0x00007fd97d400000)
    libQt5Gui.so.5 => /home/baran/micromamba/envs/image_classification/lib/python3.10/site-packages/fast/lib/./../lib/libQt5Gui.so.5 (0x00007fd97ca00000)
    libQt5Widgets.so.5 => /home/baran/micromamba/envs/image_classification/lib/python3.10/site-packages/fast/lib/./../lib/libQt5Widgets.so.5 (0x00007fd97c000000)
    libQt5OpenGL.so.5 => /home/baran/micromamba/envs/image_classification/lib/python3.10/site-packages/fast/lib/./../lib/libQt5OpenGL.so.5 (0x00007fd97bc00000)
    libQt5Multimedia.so.5 => /home/baran/micromamba/envs/image_classification/lib/python3.10/site-packages/fast/lib/./../lib/libQt5Multimedia.so.5 (0x00007fd97b800000)
    libQt5Network.so.5 => /home/baran/micromamba/envs/image_classification/lib/python3.10/site-packages/fast/lib/./../lib/libQt5Network.so.5 (0x00007fd97b400000)
    libz.so.1 => /home/baran/micromamba/envs/image_classification/lib/python3.10/site-packages/fast/lib/./../lib/libz.so.1 (0x00007fd97b000000)
    libOpenIGTLink.so.3 => /home/baran/micromamba/envs/image_classification/lib/python3.10/site-packages/fast/lib/./../lib/libOpenIGTLink.so.3 (0x00007fd97ac00000)
    librealsense2.so.2.40 => /home/baran/micromamba/envs/image_classification/lib/python3.10/site-packages/fast/lib/./../lib/librealsense2.so.2.40 (0x00007fd979e00000)
    libtiff.so.5 => /home/baran/micromamba/envs/image_classification/lib/python3.10/site-packages/fast/lib/./../lib/libtiff.so.5 (0x00007fd979a00000)
    libopenslide.so => /home/baran/micromamba/envs/image_classification/lib/python3.10/site-packages/fast/lib/./../lib/libopenslide.so (0x00007fd979600000)
    libdcmdata.so.13 => /home/baran/micromamba/envs/image_classification/lib/python3.10/site-packages/fast/lib/./../lib/libdcmdata.so.13 (0x00007fd979000000)
    libdcmimgle.so.13 => /home/baran/micromamba/envs/image_classification/lib/python3.10/site-packages/fast/lib/./../lib/libdcmimgle.so.13 (0x00007fd978a00000)
    libofstd.so.13 => /home/baran/micromamba/envs/image_classification/lib/python3.10/site-packages/fast/lib/./../lib/libofstd.so.13 (0x00007fd978600000)
    libhdf5_cpp.so.103 => /home/baran/micromamba/envs/image_classification/lib/python3.10/site-packages/fast/lib/./../lib/libhdf5_cpp.so.103 (0x00007fd978200000)
    libJKQTPlotterSharedLib_Release.so.4.0.0 => /home/baran/micromamba/envs/image_classification/lib/python3.10/site-packages/fast/lib/./../lib/libJKQTPlotterSharedLib_Release.so.4.0.0 (0x00007fd977c00000)
    libOpenGL.so.0 => /lib/x86_64-linux-gnu/libOpenGL.so.0 (0x00007fd97ea25000)
    libGLX.so.0 => /lib/x86_64-linux-gnu/libGLX.so.0 (0x00007fd97e9f3000)
    libX11.so.6 => /lib/x86_64-linux-gnu/libX11.so.6 (0x00007fd97e0c2000)
    libpthread.so.0 => /lib/x86_64-linux-gnu/libpthread.so.0 (0x00007fd97e9ec000)
    libstdc++.so.6 => /lib/x86_64-linux-gnu/libstdc++.so.6 (0x00007fd977800000)
    libm.so.6 => /lib/x86_64-linux-gnu/libm.so.6 (0x00007fd97dd15000)
    libgomp.so.1 => /lib/x86_64-linux-gnu/libgomp.so.1 (0x00007fd97e999000)
    libgcc_s.so.1 => /lib/x86_64-linux-gnu/libgcc_s.so.1 (0x00007fd97e975000)
    libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007fd977400000)
    /lib64/ld-linux-x86-64.so.2 (0x00007fd97ea6d000)
    libdl.so.2 => /lib/x86_64-linux-gnu/libdl.so.2 (0x00007fd97e96e000)
    libglib-2.0.so.0 => /home/baran/micromamba/envs/image_classification/lib/python3.10/site-packages/fast/lib/./../lib/../lib/libglib-2.0.so.0 (0x00007fd977000000)
    libGL.so.1 => /lib/x86_64-linux-gnu/libGL.so.1 (0x00007fd97e03b000)
    libssl.so.1.1 => /home/baran/micromamba/envs/image_classification/lib/python3.10/site-packages/fast/lib/./../lib/../lib/libssl.so.1.1 (0x00007fd976c00000)
    libcrypto.so.1.1 => /home/baran/micromamba/envs/image_classification/lib/python3.10/site-packages/fast/lib/./../lib/../lib/libcrypto.so.1.1 (0x00007fd976600000)
    libusb-1.0.so.0 => /lib/x86_64-linux-gnu/libusb-1.0.so.0 (0x00007fd97e01d000)
    libjpeg.so.8 => /home/baran/micromamba/envs/image_classification/lib/python3.10/site-packages/fast/lib/./../lib/../lib/libjpeg.so.8 (0x00007fd976200000)
    libpixman-1.so.0 => /home/baran/micromamba/envs/image_classification/lib/python3.10/site-packages/fast/lib/./../lib/../lib/libpixman-1.so.0 (0x00007fd975e00000)
    libcairo.so.2 => /lib/x86_64-linux-gnu/libcairo.so.2 (0x00007fd97beb9000)
    libgdk_pixbuf-2.0.so.0 => /home/baran/micromamba/envs/image_classification/lib/python3.10/site-packages/fast/lib/./../lib/../lib/libgdk_pixbuf-2.0.so.0 (0x00007fd975a00000)
    libopenjp2.so.7 => /home/baran/micromamba/envs/image_classification/lib/python3.10/site-packages/fast/lib/./../lib/../lib/libopenjp2.so.7 (0x00007fd975600000)
    libsqlite3.so.0 => /home/baran/micromamba/envs/image_classification/lib/python3.10/site-packages/fast/lib/./../lib/../lib/libsqlite3.so.0 (0x00007fd975200000)
    libxml2.so.2 => /home/baran/micromamba/envs/image_classification/lib/python3.10/site-packages/fast/lib/./../lib/../lib/libxml2.so.2 (0x00007fd974e00000)
    libpng16.so.16 => /home/baran/micromamba/envs/image_classification/lib/python3.10/site-packages/fast/lib/./../lib/../lib/libpng16.so.16 (0x00007fd974a00000)
    libgobject-2.0.so.0 => /home/baran/micromamba/envs/image_classification/lib/python3.10/site-packages/fast/lib/./../lib/../lib/libgobject-2.0.so.0 (0x00007fd974600000)
    libgio-2.0.so.0 => /home/baran/micromamba/envs/image_classification/lib/python3.10/site-packages/fast/lib/./../lib/../lib/libgio-2.0.so.0 (0x00007fd974200000)
    liboflog.so.13 => /home/baran/micromamba/envs/image_classification/lib/python3.10/site-packages/fast/lib/./../lib/../lib/liboflog.so.13 (0x00007fd973e00000)
    libhdf5.so.103 => /home/baran/micromamba/envs/image_classification/lib/python3.10/site-packages/fast/lib/./../lib/../lib/libhdf5.so.103 (0x00007fd973800000)
    libQt5Svg.so.5 => /home/baran/micromamba/envs/image_classification/lib/python3.10/site-packages/fast/lib/./../lib/../lib/libQt5Svg.so.5 (0x00007fd973400000)
    libJKQTMathTextSharedLib_Release.so.4.0.0 => /home/baran/micromamba/envs/image_classification/lib/python3.10/site-packages/fast/lib/./../lib/../lib/libJKQTMathTextSharedLib_Release.so.4.0.0 (0x00007fd973000000)
    libJKQTCommonSharedLib_Release.so.4.0.0 => /home/baran/micromamba/envs/image_classification/lib/python3.10/site-packages/fast/lib/./../lib/../lib/libJKQTCommonSharedLib_Release.so.4.0.0 (0x00007fd972c00000)
    libQt5PrintSupport.so.5 => /home/baran/micromamba/envs/image_classification/lib/python3.10/site-packages/fast/lib/./../lib/../lib/libQt5PrintSupport.so.5 (0x00007fd972800000)
    libGLdispatch.so.0 => /lib/x86_64-linux-gnu/libGLdispatch.so.0 (0x00007fd97c948000)
    libxcb.so.1 => /lib/x86_64-linux-gnu/libxcb.so.1 (0x00007fd97d3d6000)
    libpcre.so.3 => /home/baran/micromamba/envs/image_classification/lib/python3.10/site-packages/fast/lib/./../lib/../lib/../lib/libpcre.so.3 (0x00007fd972400000)
    libudev.so.1 => /lib/x86_64-linux-gnu/libudev.so.1 (0x00007fd97d3a5000)
    libfontconfig.so.1 => /lib/x86_64-linux-gnu/libfontconfig.so.1 (0x00007fd97c8fa000)
    libfreetype.so.6 => /lib/x86_64-linux-gnu/libfreetype.so.6 (0x00007fd97bb34000)
    libXext.so.6 => /lib/x86_64-linux-gnu/libXext.so.6 (0x00007fd97dd00000)
    libXrender.so.1 => /lib/x86_64-linux-gnu/libXrender.so.1 (0x00007fd97e010000)
    libxcb-render.so.0 => /lib/x86_64-linux-gnu/libxcb-render.so.0 (0x00007fd97dcf2000)
    libxcb-shm.so.0 => /lib/x86_64-linux-gnu/libxcb-shm.so.0 (0x00007fd97e95d000)
    libgmodule-2.0.so.0 => /home/baran/micromamba/envs/image_classification/lib/python3.10/site-packages/fast/lib/./../lib/../lib/../lib/libgmodule-2.0.so.0 (0x00007fd972000000)
    libicuuc.so.60 => /home/baran/micromamba/envs/image_classification/lib/python3.10/site-packages/fast/lib/./../lib/../lib/../lib/libicuuc.so.60 (0x00007fd971c00000)
    liblzma.so.5 => /home/baran/micromamba/envs/image_classification/lib/python3.10/site-packages/fast/lib/./../lib/../lib/../lib/liblzma.so.5 (0x00007fd971800000)
    libffi.so.6 => /home/baran/micromamba/envs/image_classification/lib/python3.10/site-packages/fast/lib/./../lib/../lib/../lib/libffi.so.6 (0x00007fd971400000)
    libselinux.so.1 => /lib/x86_64-linux-gnu/libselinux.so.1 (0x00007fd97d378000)
    libresolv.so.2 => /lib/x86_64-linux-gnu/libresolv.so.2 (0x00007fd97d366000)
    libmount.so.1 => /lib/x86_64-linux-gnu/libmount.so.1 (0x00007fd97be6d000)
    libQt5Xml.so.5 => /home/baran/micromamba/envs/image_classification/lib/python3.10/site-packages/fast/lib/./../lib/../lib/../lib/libQt5Xml.so.5 (0x00007fd971000000)
    libXau.so.6 => /lib/x86_64-linux-gnu/libXau.so.6 (0x00007fd97d360000)
    libXdmcp.so.6 => /lib/x86_64-linux-gnu/libXdmcp.so.6 (0x00007fd97c8f2000)
    libcap.so.2 => /lib/x86_64-linux-gnu/libcap.so.2 (0x00007fd97c8e6000)
    libexpat.so.1 => /lib/x86_64-linux-gnu/libexpat.so.1 (0x00007fd97b7d5000)
    libbz2.so.1.0 => /lib/x86_64-linux-gnu/libbz2.so.1.0 (0x00007fd97b7c2000)
    libbrotlidec.so.1 => /lib/x86_64-linux-gnu/libbrotlidec.so.1 (0x00007fd97b3f3000)
    libicudata.so.60 => /home/baran/micromamba/envs/image_classification/lib/python3.10/site-packages/fast/lib/./../lib/../lib/../lib/../lib/libicudata.so.60 (0x00007fd96f400000)
    libpcre2-8.so.0 => /lib/x86_64-linux-gnu/libpcre2-8.so.0 (0x00007fd97b358000)
    libblkid.so.1 => /lib/x86_64-linux-gnu/libblkid.so.1 (0x00007fd97b31d000)
    libbsd.so.0 => /lib/x86_64-linux-gnu/libbsd.so.0 (0x00007fd97b308000)
    libbrotlicommon.so.1 => /lib/x86_64-linux-gnu/libbrotlicommon.so.1 (0x00007fd97b2e5000)
smistad commented 9 months ago

I think there is an incompatibility between libpixman bundled with FAST, and the libcairo on your system. Which is a bit strange since both have the same SO version on ubuntu 18 as in ubuntu 23.

There are two quick hacks you can try if you are up to it:

I need to setup a machine with ubuntu 23 to investigate this further. Thanks for reporting this!

quancore commented 9 months ago

The first solution gives me core dumped error: image Second hack did not change anything

smistad commented 9 months ago

More compatibility issues then.. Qt this time.

You can try to do export QT_DEBUG_PLUGINS=1, before running python. There might be an error message there that gives more meaning why it is not able to load Qt.

quancore commented 9 months ago

I think this is the problem?

Got keys from plugin meta data ("xcb")
QFactoryLoader::QFactoryLoader() checking directory path "/home/baran/micromamba/envs/image_classification/bin/platforms" ...
Cannot load library /home/baran/micromamba/envs/image_classification/lib/python3.10/site-packages/fast/plugins/platforms/libqxcb.so: (libxcb-xinerama.so.0: cannot open shared object file: No such file or directory)
QLibraryPrivate::loadPlugin failed on "/home/baran/micromamba/envs/image_classification/lib/python3.10/site-packages/fast/plugins/platforms/libqxcb.so" : "Cannot load library /home/baran/micromamba/envs/image_classification/lib/python3.10/site-packages/fast/plugins/platforms/libqxcb.so: (libxcb-xinerama.so.0: cannot open shared object file: No such file or directory)"
qt.qpa.plugin: Could not load the Qt platform plugin "xcb" in "" even though it was found.
quancore commented 9 months ago

I have run the command: sudo apt install libxcb-xinerama0 and it imported successfully, Lets see if it is usable after all.

smistad commented 9 months ago

I have run the command: sudo apt install libxcb-xinerama0 and it imported successfully, Lets see if it is usable after all.

Ok, great. Let me know how it goes. I will have to add this dependency to the requirements in the documentation.

smistad commented 7 months ago

Update: This issue was introduced in Ubuntu 23.10. FAST works on Ubuntu 23.04. Removing libpixman-1.so.0 makes FAST work on Ubuntu 23.10.

Will try to remove libpixman from the build