KDAB / KDDockWidgets

KDAB's Dock Widget Framework for Qt
https://www.kdab.com/development-resources/qt-tools/kddockwidgets
Other
768 stars 165 forks source link

Python bindings build fails on KDE Neon 5.21.5 #197

Closed mara004 closed 3 years ago

mara004 commented 3 years ago

Hello,

I attempted to build/install the Python/PySide2 bindings for KDDockWidgets (Release 1.3.0) on KDE Neon 5.21.5 with Qt 5.15.2, but apparently shiboken failed while loding some shared library.

Here is the log:

me@lx2020:~/Downloads/builds/KDDockWidgets-1.3.0/build$ pip3 install  --index-url=http://download.qt.io/official_releases/QtForPython/  --trusted-host download.qt.io  shiboken2 pyside2 shiboken2_generator
Defaulting to user installation because normal site-packages is not writeable
Looking in indexes: http://download.qt.io/official_releases/QtForPython/
Requirement already satisfied: shiboken2 in /usr/local/lib/python3.8/dist-packages (5.15.2)
Requirement already satisfied: pyside2 in /usr/local/lib/python3.8/dist-packages (5.15.2)
Requirement already satisfied: shiboken2_generator in /usr/local/lib/python3.8/dist-packages (5.15.2)

me@lx2020:~/Downloads/builds/KDDockWidgets-1.3.0/build$ cmake -DKDDockWidgets_PYTHON_BINDINGS=ON -DKDDockWidgets_PYTHON_BINDINGS_INSTALL_PREFIX=/usr/lib/python3.8/site-packages ..
-- The CXX compiler identification is GNU 9.3.0
-- Check for working CXX compiler: /usr/bin/c++
-- Check for working CXX compiler: /usr/bin/c++ -- works
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- Detecting CXX compile features
-- Detecting CXX compile features - done
-- Found Python3: /usr/bin/python3.8 (found suitable version "3.8.5", minimum required is "3.7") found components: Interpreter Development 
-- Found PkgConfig: /usr/bin/pkg-config (found version "0.29.1") 
-- ShibokenGenerator base dir: /usr/local/lib/python3.8/dist-packages/shiboken2_generator
-- Shiboken base dir:          /usr/local/lib/python3.8/dist-packages/shiboken2
-- Shiboken custom path:       
-- Shiboken include dir:       /usr/local/lib/python3.8/dist-packages/shiboken2_generator/include
-- Shiboken library:           /usr/local/lib/python3.8/dist-packages/shiboken2/libshiboken2.abi3.so.5.15
-- Shiboken binary:            /usr/local/lib/python3.8/dist-packages/shiboken2_generator/shiboken2
-- Shiboken version:           5.15.2
-- Found Shiboken2: /usr/local/lib/python3.8/dist-packages/shiboken2 (found version "5.15.2") 
-- PySide2 base dir:           /usr/local/lib/python3.8/dist-packages/PySide2
-- PySide2 suffix:             abi3.so.5.15
-- PySide include dir:         /usr/local/lib/python3.8/dist-packages/PySide2/include
-- PySide library:             /usr/local/lib/python3.8/dist-packages/PySide2/libpyside2.abi3.so.5.15
-- PySide typesystems:         /usr/local/lib/python3.8/dist-packages/PySide2/typesystems
-- PySide2 version:            5.15.2
-- Found PySide2: /usr/local/lib/python3.8/dist-packages/PySide2 (found suitable exact version "5.15.2") 
-- PYTHON INSTALL PREFIX /usr/lib/python3.8/site-packages
-- The C compiler identification is GNU 9.3.0
-- Check for working C compiler: /usr/bin/cc
-- Check for working C compiler: /usr/bin/cc -- works
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Detecting C compile features
-- Detecting C compile features - done
-- Configuring done
-- Generating done
-- Build files have been written to: /home/manuel/Downloads/builds/KDDockWidgets-1.3.0/build

me@lx2020:~/Downloads/builds/KDDockWidgets-1.3.0/build$ make -j4
Scanning dependencies of target kddockwidgets_autogen
[  2%] Automatic MOC for target kddockwidgets
[  2%] Built target kddockwidgets_autogen
[  5%] Automatic RCC for kddockwidgets_resources.qrc
Scanning dependencies of target kddockwidgets
[ 11%] Building CXX object src/CMakeFiles/kddockwidgets.dir/Unity/unity_4_cxx.cxx.o
[ 11%] Building CXX object src/CMakeFiles/kddockwidgets.dir/Unity/unity_5_cxx.cxx.o
[ 13%] Building CXX object src/CMakeFiles/kddockwidgets.dir/Unity/unity_3_cxx.cxx.o
[ 16%] Building CXX object src/CMakeFiles/kddockwidgets.dir/Unity/unity_2_cxx.cxx.o
[ 19%] Building CXX object src/CMakeFiles/kddockwidgets.dir/Unity/unity_1_cxx.cxx.o
[ 22%] Building CXX object src/CMakeFiles/kddockwidgets.dir/Unity/unity_0_cxx.cxx.o
[ 25%] Building CXX object src/CMakeFiles/kddockwidgets.dir/kddockwidgets_autogen/EWIEGA46WW/qrc_kddockwidgets_resources.cpp.o
[ 27%] Linking CXX shared library libkddockwidgets.so
[ 27%] Built target kddockwidgets
Scanning dependencies of target kddockwidgets_minimal_example_autogen
Scanning dependencies of target kddockwidgets_example_autogen
Scanning dependencies of target PyKDDockWidgets_autogen
[ 30%] Automatic MOC for target PyKDDockWidgets
[ 33%] Automatic MOC for target kddockwidgets_minimal_example
[ 36%] Automatic MOC for target kddockwidgets_example
[ 36%] Built target PyKDDockWidgets_autogen
[ 38%] Running generator for KDDockWidgets binding...
/usr/local/lib/python3.8/dist-packages/shiboken2_generator/shiboken2: error while loading shared libraries: libicui18n.so.56: cannot open shared object file: No such file or directory
make[2]: *** [python/PyKDDockWidgets/CMakeFiles/PyKDDockWidgets.dir/build.make:68: python/PyKDDockWidgets/KDDockWidgets/kddockwidgets_dockwidgetbase_wrapper.cpp] Fehler 127
make[1]: *** [CMakeFiles/Makefile2:233: python/PyKDDockWidgets/CMakeFiles/PyKDDockWidgets.dir/all] Fehler 2
make[1]: *** Auf noch nicht beendete Prozesse wird gewartet …
[ 38%] Built target kddockwidgets_minimal_example_autogen
[ 38%] Built target kddockwidgets_example_autogen
make: *** [Makefile:130: all] Fehler 2

Thanks for your help.

winterz commented 3 years ago

I don't have a solution inside kddockwidgets itself at the moment. it feels like a problem in QtForPython

for now you can try: export LD_LIBRARY_PATH=/usr/local/lib/python3.8/dist-packages/PySide2/Qt/lib

mara004 commented 3 years ago

This made shiboken work, but now there's a new problem with the clang include directory:

me@lx2020:~/Downloads/builds/KDDockWidgets-1.3.0/build$ make -j4
Scanning dependencies of target kddockwidgets_autogen
[  2%] Automatic MOC for target kddockwidgets
[  2%] Built target kddockwidgets_autogen
[  5%] Automatic RCC for kddockwidgets_resources.qrc
Scanning dependencies of target kddockwidgets
[ 11%] Building CXX object src/CMakeFiles/kddockwidgets.dir/Unity/unity_4_cxx.cxx.o
[ 11%] Building CXX object src/CMakeFiles/kddockwidgets.dir/Unity/unity_5_cxx.cxx.o
[ 13%] Building CXX object src/CMakeFiles/kddockwidgets.dir/Unity/unity_3_cxx.cxx.o
[ 16%] Building CXX object src/CMakeFiles/kddockwidgets.dir/Unity/unity_2_cxx.cxx.o
[ 19%] Building CXX object src/CMakeFiles/kddockwidgets.dir/Unity/unity_1_cxx.cxx.o
[ 22%] Building CXX object src/CMakeFiles/kddockwidgets.dir/Unity/unity_0_cxx.cxx.o
[ 25%] Building CXX object src/CMakeFiles/kddockwidgets.dir/kddockwidgets_autogen/EWIEGA46WW/qrc_kddockwidgets_resources.cpp.o
[ 27%] Linking CXX shared library libkddockwidgets.so
[ 27%] Built target kddockwidgets
Scanning dependencies of target kddockwidgets_minimal_example_autogen
Scanning dependencies of target PyKDDockWidgets_autogen
Scanning dependencies of target kddockwidgets_example_autogen
[ 30%] Automatic MOC for target PyKDDockWidgets
[ 33%] Automatic MOC for target kddockwidgets_example
[ 36%] Automatic MOC for target kddockwidgets_minimal_example
[ 36%] Built target PyKDDockWidgets_autogen
[ 38%] Running generator for KDDockWidgets binding...
[ 38%] Built target kddockwidgets_minimal_example_autogen
[ 41%] Automatic RCC for ../dockwidgets/resources_example.qrc
[ 41%] Built target kddockwidgets_example_autogen
qt.shiboken: (kddockwidgets) Duplicate type entry: 'QMessageLogContext'
[ 44%] Automatic RCC for resources_example.qrc
qt.shiboken: (kddockwidgets) enum DockWidgetBase and flags KDDockWidgets (KDDockWidgets.DockWidgetBase) differ in qualifiers
Scanning dependencies of target kddockwidgets_minimal_example
Scanning dependencies of target kddockwidgets_example
qt.shiboken: (kddockwidgets) Unable to locate Clang's built-in include directory (neither by checking the environment variables LLVM_INSTALL_DIR, CLANG_INSTALL_DIR  nor running llvm-config). This may lead to parse errors.
(kddockwidgets) clang_parseTranslationUnit2(0x0, cmd[16]=-fPIC -Wno-constant-logical-operand -std=c++17 -I/home/manuel/Downloads/builds/KDDockWidgets-1.3.0/src/fwd_headers -I/usr/include/x86_64-linux-gnu/qt5 -I/usr/include/x86_64-linux-gnu/qt5/QtWidgets -I/usr/include/x86_64-linux-gnu/qt5 -I/usr/include/x86_64-linux-gnu/qt5/QtGui -I/usr/include/x86_64-linux-gnu/qt5 -I/usr/include/x86_64-linux-gnu/qt5/QtCore -I/usr/lib/x86_64-linux-gnu/qt5/mkspecs/linux-g++ -I/usr/include/x86_64-linux-gnu/qt5 -I/usr/include/x86_64-linux-gnu/qt5/QtX11Extras /tmp/kddockwidgets_global_GXgLcl.hpp "-DQT_ANNOTATE_ACCESS_SPECIFIER(a)=__attribute__((annotate(#a)))" "-DQT_ANNOTATE_CLASS(type,...)=static_assert(sizeof(#__VA_ARGS__),#type);")
[ 50%] Building CXX object examples/minimal/CMakeFiles/kddockwidgets_minimal_example.dir/main.cpp.o
[ 50%] Building CXX object examples/minimal/CMakeFiles/kddockwidgets_minimal_example.dir/kddockwidgets_minimal_example_autogen/mocs_compilation.cpp.o
[ 52%] Building CXX object examples/dockwidgets/CMakeFiles/kddockwidgets_example.dir/kddockwidgets_example_autogen/mocs_compilation.cpp.o
libclang: crash detected during parsing: {
  'source_filename' : '(null)'
  'command_line_args' : ['clang', '-fPIC', '-Wno-constant-logical-operand', '-std=c++17', '-I/home/manuel/Downloads/builds/KDDockWidgets-1.3.0/src/fwd_headers', '-I/usr/include/x86_64-linux-gnu/qt5', '-I/usr/include/x86_64-linux-gnu/qt5/QtWidgets', '-I/usr/include/x86_64-linux-gnu/qt5', '-I/usr/include/x86_64-linux-gnu/qt5/QtGui', '-I/usr/include/x86_64-linux-gnu/qt5', '-I/usr/include/x86_64-linux-gnu/qt5/QtCore', '-I/usr/lib/x86_64-linux-gnu/qt5/mkspecs/linux-g++', '-I/usr/include/x86_64-linux-gnu/qt5', '-I/usr/include/x86_64-linux-gnu/qt5/QtX11Extras', '/tmp/kddockwidgets_global_GXgLcl.hpp', '-DQT_ANNOTATE_ACCESS_SPECIFIER(a)=__attribute__((annotate(#a)))', '-DQT_ANNOTATE_CLASS(type,...)=static_assert(sizeof(#__VA_ARGS__),#type);'],
  'unsaved_files' : [],
  'options' : 66,
}
(kddockwidgets) Could not parse -DQT_ANNOTATE_CLASS(type,...)=static_assert(sizeof(#__VA_ARGS__),#type);, error code: 2
Keeping temporary file: /tmp/kddockwidgets_global_GXgLcl.hpp
shiboken: Error running ApiExtractor.
Command line: --generator-set=shiboken --enable-parent-ctor-heuristic --enable-pyside-extensions --enable-return-value-heuristic --use-isnull-as-nb_nonzero -std=c++17 /home/manuel/Downloads/builds/KDDockWidgets-1.3.0/python/PyKDDockWidgets/kddockwidgets_global.h --include-paths=/home/manuel/Downloads/builds/KDDockWidgets-1.3.0/src/fwd_headers:/usr/include/x86_64-linux-gnu/qt5/:/usr/include/x86_64-linux-gnu/qt5/QtWidgets:/usr/include/x86_64-linux-gnu/qt5/:/usr/include/x86_64-linux-gnu/qt5/QtGui:/usr/include/x86_64-linux-gnu/qt5/:/usr/include/x86_64-linux-gnu/qt5/QtCore:/usr/lib/x86_64-linux-gnu/qt5//mkspecs/linux-g++:/usr/include/x86_64-linux-gnu/qt5/:/usr/include/x86_64-linux-gnu/qt5/QtX11Extras: --typesystem-paths=/usr/local/lib/python3.8/dist-packages/PySide2/typesystems --output-directory=/home/manuel/Downloads/builds/KDDockWidgets-1.3.0/build/python/PyKDDockWidgets /home/manuel/Downloads/builds/KDDockWidgets-1.3.0/python/PyKDDockWidgets/typesystem_kddockwidgets.xml
make[2]: *** [python/PyKDDockWidgets/CMakeFiles/PyKDDockWidgets.dir/build.make:68: python/PyKDDockWidgets/KDDockWidgets/kddockwidgets_dockwidgetbase_wrapper.cpp] Fehler 1
make[1]: *** [CMakeFiles/Makefile2:233: python/PyKDDockWidgets/CMakeFiles/PyKDDockWidgets.dir/all] Fehler 2
make[1]: *** Auf noch nicht beendete Prozesse wird gewartet …
[ 55%] Building CXX object examples/minimal/CMakeFiles/kddockwidgets_minimal_example.dir/__/dockwidgets/MyWidget.cpp.o
[ 58%] Building CXX object examples/minimal/CMakeFiles/kddockwidgets_minimal_example.dir/kddockwidgets_minimal_example_autogen/PBMXWPTGLO/qrc_resources_example.cpp.o
[ 61%] Building CXX object examples/dockwidgets/CMakeFiles/kddockwidgets_example.dir/main.cpp.o
[ 63%] Building CXX object examples/dockwidgets/CMakeFiles/kddockwidgets_example.dir/MyFrameworkWidgetFactory.cpp.o
[ 66%] Building CXX object examples/dockwidgets/CMakeFiles/kddockwidgets_example.dir/MyMainWindow.cpp.o
[ 69%] Building CXX object examples/dockwidgets/CMakeFiles/kddockwidgets_example.dir/MyWidget.cpp.o
[ 72%] Building CXX object examples/dockwidgets/CMakeFiles/kddockwidgets_example.dir/kddockwidgets_example_autogen/EWIEGA46WW/qrc_resources_example.cpp.o
[ 75%] Linking CXX executable ../../bin/kddockwidgets_minimal_example
[ 75%] Built target kddockwidgets_minimal_example
[ 77%] Linking CXX executable ../../bin/kddockwidgets_example
[ 77%] Built target kddockwidgets_example
make: *** [Makefile:130: all] Fehler 2
mara004 commented 3 years ago

Ah, I have been able to fix it by simply installing the llvm package ;).

mara004 commented 3 years ago

Now KDDockWidgets is installed to /usr/local/KDAB/KDDockWidgets-1.3.0/ and PyKDDockWidgets to usr/lib/python3.8/site-packages/PyKDDockWidgets/, but running the Python example fails:

me@lx2020:~/Downloads/builds/KDDockWidgets-1.3.0/python/examples$ python3 main.py 
Traceback (most recent call last):
  File "main.py", line 12, in <module>
    from PyKDDockWidgets import KDDockWidgets
ImportError: libkddockwidgets.so.1.3: cannot open shared object file: No such file or directory

I already tried to set PYTHONPATH but it didn't help.

renatofilho commented 3 years ago

Make sure that the path that contains libkddockwidgets.so is part of your LD_LiBRARY_PATH

On Sat, May 8, 2021, 9:07 AM mara004 @.***> wrote:

Now KDDockWidgets is installed to /usr/local/KDAB/KDDockWidgets-1.3.0/ and PyKDDockWidgets to usr/lib/python3.8/site-packages/PyKDDockWidgets/, but running the Python example fails:

@.***:~/Downloads/builds/KDDockWidgets-1.3.0/python/examples$ python3 main.py Traceback (most recent call last): File "main.py", line 12, in from PyKDDockWidgets import KDDockWidgets ImportError: libkddockwidgets.so.1.3: cannot open shared object file: No such file or directory

I already tried to set PYTHONPATH but it didn't help.

— You are receiving this because you are subscribed to this thread. Reply to this email directly, view it on GitHub https://github.com/KDAB/KDDockWidgets/issues/197#issuecomment-835330723, or unsubscribe https://github.com/notifications/unsubscribe-auth/AAECSA6YUQGQ6M5WMR3XVNLTMUSQDANCNFSM44KU6KEA .

mara004 commented 3 years ago

Ah, right. Thanks!