Skip to content

Latest commit

 

History

History
112 lines (78 loc) · 3.45 KB

README-bindings.md

File metadata and controls

112 lines (78 loc) · 3.45 KB

KDChart and Python bindings

These are the instructions for building the Python bindings for KDChart.

Starting with version 2.7.0 KD Chart can build Python3 bindings.

Currently unsupported:

Also, there are no plans to support the qmake buildsystem.

Prerequisites

You will need:

  • a compiler with C++14 support (C++17 for Qt6 builds)
  • Python3.6 or higher
  • Qt5 version 5.15 or higher
  • Qt6 version 6.2 or higher
  • QtForPython provided by the Qt project.

Install PySide2 for Qt5

Make sure you have PySide2, shiboken2 and shiboken2-generator installed. As this time, you cannot get shiboken2-generator because the wheels are not on PyPi. To use the wheels do this:

% pip3 install \
    --index-url=http://download.qt.io/official_releases/QtForPython/ \
    --trusted-host download.qt.io \
    shiboken2 pyside2 shiboken2_generator

For more info visit https://doc.qt.io/qtforpython/shiboken2/gettingstarted.html

afterwards run:

pip3 list | grep PySide

Note the version must match the same Qt you intend to use when building KD Chart.

Install PySide6 for Qt6

Follow the same instructions as [the previous section](#Install PySide2 for Qt5), except installing shiboken6 pyside6 shiboken6_generator with pip3.

Building KDChart Python Bindings

Tell CMake to build the bindings by passing the -DKDChart_PYTHON_BINDINGS=True' option. Then run cmake --build` as usual.

The bindings will be installed to CMAKE_INSTALL_PREFIX, which might require setting the PYTHONPATH env variable to point to that path when running applications.

For example, if you install to the default location on linux you would:

  export PYTHONPATH=/usr/local/KDAB/KDChart-3.0.0/lib64/python3.10/site-packages

Alternatively, configure the bindings install location by passing (for example) -DKDChart_BINDINGS_INSTALL_PREFIX=/usr/lib/python3.8/site-packages to CMake and adjust to the PYTHONPATH accordingly, as necessary.

To run the KDChart python examples:

   export PYTHONPATH=/usr/local/KDAB/KDChart-3.0.0/lib64/python3.10/site-packages # adapt as needed
   cd python/examples/view
   python3 main.py

Build Issues

  • If you see errors like "Unable to locate Clang's built-in include directory" then first make sure you have llvm installed. If you still have problems try setting the environment variable LLVM_INSTALL_DIR to point to your llvm installation.

    Examples:

    export LLVM_INSTALL_DIR=/usr/local/opt/llvm-11
    set "LLVM_INSTALL_DIR=C:\Program Files\LLVM" #Windows
  • When building the examples you may encounter errors loading shared libraries from shiboken2_generator.

    Try:

    export LD_LIBRARY_PATH=/usr/local/lib/python/dist-packages/PySide2/Qt/lib #linux
    export DYLD_LIBRARY_PATH=/usr/local/lib/python/dist-packages/PySide2/Qt/lib #Mac
    (Adjust to wherever your PySide is installed)
  • On Windows the libclang.dll that ship with QtForPython is not compatible with MSVC2019. To fix this, copy the libclang.dll that comes with llvm into shiboken2, like so:
    cd C:\Python37\Lib\site-packages\shiboken2_generator
    copy libclang.dll libclang.dll.save
    copy "C:\Program Files\llvm\bin\libclang.dll" libclang.dll
    (Python3 installation in C:\Python37 and llvm in c:\Program Files\llvm. adjust as needed)