Important: Please read the Qt Code of Conduct - https://forum.qt.io/topic/113070/qt-code-of-conduct

[SOLVED] qt.qpa.plugin: Could not find the Qt platform plugin "xcb" in ""



  • Hi there,
    I'm on Arch Linux X64 Gnome3 and I tried installing urh (https://github.com/jopohl/urh), which is based on python3-pyqt5.
    I get the following error, which persists after reinstalling urh, libxcb, and the whole qt:

    $ urh
    Warning: Ignoring XDG_SESSION_TYPE=wayland on Gnome. Use QT_QPA_PLATFORM=wayland to run on Wayland anyway.
    QFactoryLoader::QFactoryLoader() checking directory path "/usr/lib/python3.8/site-packages/PyQt5/Qt/plugins/platforms" ...
    QFactoryLoader::QFactoryLoader() checking directory path "/usr/bin/platforms" ...
    qt.qpa.plugin: Could not find the Qt platform plugin "xcb" in ""
    This application failed to start because no Qt platform plugin could be initialized. Reinstalling the application may fix this problem.
    
    Aborted (core dumped)
    

    This post didn't help in my case:
    https://forum.qt.io/topic/93247/qt-qpa-plugin-could-not-load-the-qt-platform-plugin-xcb-in-even-though-it-was-found

    Any hint on how to proceed to sort this out?
    Thanks,
    Piero


  • Moderators

    @PieBru
    so what is the output of ldd /usr/lib/qt/plugins/platforms/libqxcb.so?



  • Thank you for the reply @raven-worx , here it is:

    $ ldd /usr/lib/qt/plugins/platforms/libqxcb.so
    	linux-vdso.so.1 (0x00007fff86527000)
    	libQt5XcbQpa.so.5 => /usr/lib/libQt5XcbQpa.so.5 (0x00007fec9f498000)
    	libQt5Gui.so.5 => /usr/lib/libQt5Gui.so.5 (0x00007fec9edef000)
    	libQt5Core.so.5 => /usr/lib/libQt5Core.so.5 (0x00007fec9e8b6000)
    	libstdc++.so.6 => /usr/lib/libstdc++.so.6 (0x00007fec9e6cd000)
    	libc.so.6 => /usr/lib/libc.so.6 (0x00007fec9e507000)
    	libfontconfig.so.1 => /usr/lib/libfontconfig.so.1 (0x00007fec9e4bf000)
    	libfreetype.so.6 => /usr/lib/libfreetype.so.6 (0x00007fec9e3ef000)
    	libQt5DBus.so.5 => /usr/lib/libQt5DBus.so.5 (0x00007fec9e354000)
    	libpthread.so.0 => /usr/lib/libpthread.so.0 (0x00007fec9e332000)
    	libX11-xcb.so.1 => /usr/lib/libX11-xcb.so.1 (0x00007fec9e32d000)
    	libxcb-xinput.so.0 => /usr/lib/libxcb-xinput.so.0 (0x00007fec9e308000)
    	libxcb-icccm.so.4 => /usr/lib/libxcb-icccm.so.4 (0x00007fec9e103000)
    	libxcb-image.so.0 => /usr/lib/libxcb-image.so.0 (0x00007fec9defc000)
    	libxcb-shm.so.0 => /usr/lib/libxcb-shm.so.0 (0x00007fec9def7000)
    	libxcb-keysyms.so.1 => /usr/lib/libxcb-keysyms.so.1 (0x00007fec9dcf4000)
    	libxcb-randr.so.0 => /usr/lib/libxcb-randr.so.0 (0x00007fec9dce2000)
    	libxcb-render-util.so.0 => /usr/lib/libxcb-render-util.so.0 (0x00007fec9dade000)
    	libxcb-render.so.0 => /usr/lib/libxcb-render.so.0 (0x00007fec9dace000)
    	libxcb-shape.so.0 => /usr/lib/libxcb-shape.so.0 (0x00007fec9dac6000)
    	libxcb-sync.so.1 => /usr/lib/libxcb-sync.so.1 (0x00007fec9dabc000)
    	libxcb-xfixes.so.0 => /usr/lib/libxcb-xfixes.so.0 (0x00007fec9dab2000)
    	libxcb-xinerama.so.0 => /usr/lib/libxcb-xinerama.so.0 (0x00007fec9daad000)
    	libxcb-xkb.so.1 => /usr/lib/libxcb-xkb.so.1 (0x00007fec9da8f000)
    	libxcb.so.1 => /usr/lib/libxcb.so.1 (0x00007fec9da65000)
    	libX11.so.6 => /usr/lib/libX11.so.6 (0x00007fec9d923000)
    	libSM.so.6 => /usr/lib/libSM.so.6 (0x00007fec9d918000)
    	libICE.so.6 => /usr/lib/libICE.so.6 (0x00007fec9d8fb000)
    	libxkbcommon-x11.so.0 => /usr/lib/libxkbcommon-x11.so.0 (0x00007fec9d8f1000)
    	libxkbcommon.so.0 => /usr/lib/libxkbcommon.so.0 (0x00007fec9d8b0000)
    	libglib-2.0.so.0 => /usr/lib/libglib-2.0.so.0 (0x00007fec9d78b000)
    	libm.so.6 => /usr/lib/libm.so.6 (0x00007fec9d643000)
    	libgcc_s.so.1 => /usr/lib/libgcc_s.so.1 (0x00007fec9d629000)
    	libmd4c.so.0 => /usr/lib/libmd4c.so.0 (0x00007fec9d613000)
    	libGL.so.1 => /usr/lib/libGL.so.1 (0x00007fec9d58d000)
    	libpng16.so.16 => /usr/lib/libpng16.so.16 (0x00007fec9d555000)
    	libz.so.1 => /usr/lib/libz.so.1 (0x00007fec9d53b000)
    	libharfbuzz.so.0 => /usr/lib/libharfbuzz.so.0 (0x00007fec9d435000)
    	libsystemd.so.0 => /usr/lib/libsystemd.so.0 (0x00007fec9d38e000)
    	libdouble-conversion.so.3 => /usr/lib/libdouble-conversion.so.3 (0x00007fec9d377000)
    	libicui18n.so.65 => /usr/lib/libicui18n.so.65 (0x00007fec9d083000)
    	libicuuc.so.65 => /usr/lib/libicuuc.so.65 (0x00007fec9cea1000)
    	libdl.so.2 => /usr/lib/libdl.so.2 (0x00007fec9ce9c000)
    	libpcre2-16.so.0 => /usr/lib/libpcre2-16.so.0 (0x00007fec9ce16000)
    	libzstd.so.1 => /usr/lib/libzstd.so.1 (0x00007fec9cd6c000)
    	/usr/lib64/ld-linux-x86-64.so.2 (0x00007fec9f636000)
    	libexpat.so.1 => /usr/lib/libexpat.so.1 (0x00007fec9cd3c000)
    	libbz2.so.1.0 => /usr/lib/libbz2.so.1.0 (0x00007fec9cd29000)
    	libdbus-1.so.3 => /usr/lib/libdbus-1.so.3 (0x00007fec9ccdf000)
    	libXau.so.6 => /usr/lib/libXau.so.6 (0x00007fec9ccd8000)
    	libXdmcp.so.6 => /usr/lib/libXdmcp.so.6 (0x00007fec9ccd0000)
    	libxcb-util.so.1 => /usr/lib/libxcb-util.so.1 (0x00007fec9caca000)
    	libuuid.so.1 => /usr/lib/libuuid.so.1 (0x00007fec9cac1000)
    	libpcre.so.1 => /usr/lib/libpcre.so.1 (0x00007fec9ca4e000)
    	libGLdispatch.so.0 => /usr/lib/libGLdispatch.so.0 (0x00007fec9c995000)
    	libGLX.so.0 => /usr/lib/libGLX.so.0 (0x00007fec9c962000)
    	libgraphite2.so.3 => /usr/lib/libgraphite2.so.3 (0x00007fec9c93d000)
    	librt.so.1 => /usr/lib/librt.so.1 (0x00007fec9c932000)
    	liblzma.so.5 => /usr/lib/liblzma.so.5 (0x00007fec9c90a000)
    	liblz4.so.1 => /usr/lib/liblz4.so.1 (0x00007fec9c8e8000)
    	libgcrypt.so.20 => /usr/lib/libgcrypt.so.20 (0x00007fec9c7c8000)
    	libicudata.so.65 => /usr/lib/libicudata.so.65 (0x00007fec9ad17000)
    	libgpg-error.so.0 => /usr/lib/libgpg-error.so.0 (0x00007fec9acf5000)
    

  • Moderators

    @PieBru
    so your plugins are located in /usr/lib/qt/plugins but your Qt libs are in /usr/lib??
    Is this really correct?!
    I never used a installed Qt package on Linux, i always compiled it myself, thats why i am asking.
    Or did you even install it via the package manager?



  • @raven-worx
    I installed via the Arch package manager, initially yay but then I tried also with the plain pacman
    /usr/lib contains libQt5* files, /usr/lib/qt/plugins/ contains plugins:

    $ ls -l /usr/lib/qt/plugins/
    total 0
    drwxr-xr-x 1 root root  42 11 feb 10.02 assetimporters
    drwxr-xr-x 1 root root  74 11 feb 10.02 audio
    drwxr-xr-x 1 root root 110 11 feb 10.02 bearer
    drwxr-xr-x 1 root root 198 11 feb 10.02 canbus
    drwxr-xr-x 1 root root 126 11 feb 18.18 designer
    drwxr-xr-x 1 root root 244 11 feb 10.02 egldeviceintegrations
    drwxr-xr-x 1 root root  70 11 feb 10.02 gamepads
    drwxr-xr-x 1 root root 314 11 feb 10.02 generic
    drwxr-xr-x 1 root root 102 11 feb 10.02 geometryloaders
    drwxr-xr-x 1 root root 316 11 feb 10.02 geoservices
    drwxr-xr-x 1 root root  28 11 feb 10.02 iconengines
    drwxr-xr-x 1 root root 230 11 feb 10.02 imageformats
    drwxr-xr-x 1 root root 280 11 feb 10.02 lipi_toolkit
    drwxr-xr-x 1 root root 160 11 feb 10.02 mediaservice
    drwxr-xr-x 1 root root 208 11 feb 10.02 platforminputcontexts
    drwxr-xr-x 1 root root 406 11 feb 10.02 platforms
    drwxr-xr-x 1 root root  68 11 feb 10.02 platformthemes
    drwxr-xr-x 1 root root  44 11 feb 10.02 playlistformats
    drwxr-xr-x 1 root root 156 11 feb 10.02 position
    drwxr-xr-x 1 root root  48 11 feb 10.02 printsupport
    drwxr-xr-x 1 root root  40 11 feb 18.18 PyQt5
    drwxr-xr-x 1 root root 460 11 feb 10.02 qmltooling
    drwxr-xr-x 1 root root  26 11 feb 10.02 renderplugins
    drwxr-xr-x 1 root root 130 11 feb 10.02 sceneparsers
    drwxr-xr-x 1 root root 126 11 feb 10.02 sensorgestures
    drwxr-xr-x 1 root root 158 11 feb 10.02 sensors
    drwxr-xr-x 1 root root 168 11 feb 10.02 sqldrivers
    drwxr-xr-x 1 root root 106 11 feb 10.02 texttospeech
    drwxr-xr-x 1 root root 416 11 feb 10.02 virtualkeyboard
    drwxr-xr-x 1 root root  28 11 feb 10.02 wayland-decoration-client
    drwxr-xr-x 1 root root 302 11 feb 10.02 wayland-graphics-integration-client
    drwxr-xr-x 1 root root 430 11 feb 10.02 wayland-graphics-integration-server
    drwxr-xr-x 1 root root 210 11 feb 10.02 wayland-shell-integration
    drwxr-xr-x 1 root root  50 11 feb 10.02 webview
    drwxr-xr-x 1 root root 104 11 feb 10.02 xcbglintegrations
    


  • Hi, I think @raven-worx is on to something here, there's a problem with the location of Qt's files, but not a problem for libqxb.so for finding the .dlls it needs (that's why the ldd looks good) but rather a problem for your executable file urh to find the location of Qt's plugin files.

    I think you need to give urh a helping hand by creating a qt.conf file with this contents:

    [Paths]
    Plugins=/usr/lib/qt/plugins
    

    and place qt.conf in the same directory as the urh executable file



  • @hskoglund
    I'm on Arch Linux, no luck by placing qt.conf in ~/.config/urh/ (together with urh.ini) and /usr/bin/ (where is located the urh executable).

    $ urh
    Warning: Ignoring XDG_SESSION_TYPE=wayland on Gnome. Use QT_QPA_PLATFORM=wayland to run on Wayland anyway.
    qt.qpa.plugin: Could not find the Qt platform plugin "xcb" in ""
    This application failed to start because no Qt platform plugin could be initialized. Reinstalling the application may fix this problem.
    
    Aborted (core dumped)
    


  • No worries, there are other ways of setting the path, for example you could try exporting it as an environment variable, say like this:

    export QT_PLUGIN_PATH=/usr/lib/qt/plugins
    urh
    

    If that doesn't work, also you can specify the path to libqxcb.so with a command argument to urh, like this:

    urh -platformpluginpath /usr/lib/qt/plugins/platforms
    

    (Note: this 2nd example only helps out with locating libqxcb.so, i.e. if urh needs more plugins to be loaded (and the 1st example above doesn't work) your still out of luck.)



  • @hskoglund
    Thank you much, both solutions works here!!!
    The urh command now shows only the wayland warning, but it seems not harmful as the app window appears and it seems to work as expected.

    Warning: Ignoring XDG_SESSION_TYPE=wayland on Gnome. Use QT_QPA_PLATFORM=wayland to run on Wayland anyway.
    

    Thank you again,
    Piero



  • @hskoglund Hi sorry for the question but, what is urh, i try to find information about it but i dont got it, i have te same problem but i cant find the urh thing, thanks!



  • Hi, look at the first post on this page, urh stands for Universal Radio Hacker...



  • @hskoglund Thanks!



  • @hskoglund said in [SOLVED] qt.qpa.plugin: Could not find the Qt platform plugin "xcb" in "":

    export QT_PLUGIN_PATH=/usr/lib/qt/plugins

    Hi dear @hskoglund
    Your efficient advises helped me too. just wanted to thank you.



  • @NoWhereMan1979 said in [SOLVED] qt.qpa.plugin: Could not find the Qt platform plugin "xcb" in "":

    @hskoglund

    @hskoglund your export QT_PLUGIN_PATH=/usr/lib/qt/plugins advice has helped me too. THank you!



  • @hskoglund thank you, I have tried your mentioned method and it works well.

    export QT_PLUGIN_PATH=/usr/lib/qt/plugins
    

Log in to reply