Skip to content
  • Categories
  • Recent
  • Tags
  • Popular
  • Users
  • Groups
  • Search
  • Get Qt Extensions
  • Unsolved
Collapse
Brand Logo
  1. Home
  2. Qt Development
  3. Qt for Python
  4. Using PyQt5 with opencv-python (cv2) causes error "could not load Qt platform plugin xcb even though it was found"
Forum Updated to NodeBB v4.3 + New Features

Using PyQt5 with opencv-python (cv2) causes error "could not load Qt platform plugin xcb even though it was found"

Scheduled Pinned Locked Moved Solved Qt for Python
30 Posts 19 Posters 69.4k Views 3 Watching
  • Oldest to Newest
  • Newest to Oldest
  • Most Votes
Reply
  • Reply as topic
Log in to reply
This topic has been deleted. Only users with topic management privileges can see it.
  • H Hikari Tretaki
    10 Nov 2020, 21:12

    @lvlanson I had the same problem. You can install headless opencv without GUI. Then it works.

    pip install opencv-python-headless

    A Offline
    A Offline
    argosopentech
    wrote on 24 Nov 2020, 01:53 last edited by
    #8

    @Hikari-Tretaki thanks for the tip! I had the same problem and switching from opencv-python to opencv-python-headless fixed it for me.

    1 Reply Last reply
    1
    • H Hikari Tretaki
      10 Nov 2020, 21:12

      @lvlanson I had the same problem. You can install headless opencv without GUI. Then it works.

      pip install opencv-python-headless

      R Offline
      R Offline
      Rainerino
      wrote on 9 Dec 2020, 10:04 last edited by
      #9

      @Hikari-Tretaki Thank you very much! Your solution work for me too!

      1 Reply Last reply
      0
      • M Offline
        M Offline
        michwil99
        wrote on 14 Feb 2021, 10:18 last edited by
        #10

        @Hikari-Tretaki thank you very much!!

        1 Reply Last reply
        0
        • Y Offline
          Y Offline
          yashwant
          wrote on 12 Apr 2021, 07:30 last edited by
          #11

          Hi, The error still persists even when I use "pip install opencv-python-headless"

          Error message:
          qt.qpa.xcb: could not connect to display
          qt.qpa.plugin: Could not load the Qt platform plugin "xcb" in "" even though it was found.
          This application failed to start because no Qt platform plugin could be initialized. Reinstalling the application may fix this problem.

          Available platform plugins are: eglfs, minimal, minimalegl, offscreen, vnc, webgl, xcb.

          /opt/conda/envs/yashenv2/.tmp8gb_phfb: line 3: 17 Aborted python TAD_GUI_Contoller.py
          ERROR conda.cli.main_run:execute(33): Subprocess for 'conda run ['python', 'TAD_GUI_Contoller.py']' command failed. (See above for error)

          Other info: When I used opencv-python (Error was similar like above except it had - Could not load the Qt platform plugin "xcb" in ".../python3.7/site-packages/cv2/qt/plugins" even though it was found.). I am using docker (with Ubuntu 18 + WSL2). The problem persist only in docker container. (The python codes work fine in windows)

          Am I missing some Ubuntu libraries? I tried installing libxcb's and many other libraries. It just does not work. Or is it related to PyQt5?

          J P 2 Replies Last reply 12 Apr 2021, 07:47
          0
          • Y yashwant
            12 Apr 2021, 07:30

            Hi, The error still persists even when I use "pip install opencv-python-headless"

            Error message:
            qt.qpa.xcb: could not connect to display
            qt.qpa.plugin: Could not load the Qt platform plugin "xcb" in "" even though it was found.
            This application failed to start because no Qt platform plugin could be initialized. Reinstalling the application may fix this problem.

            Available platform plugins are: eglfs, minimal, minimalegl, offscreen, vnc, webgl, xcb.

            /opt/conda/envs/yashenv2/.tmp8gb_phfb: line 3: 17 Aborted python TAD_GUI_Contoller.py
            ERROR conda.cli.main_run:execute(33): Subprocess for 'conda run ['python', 'TAD_GUI_Contoller.py']' command failed. (See above for error)

            Other info: When I used opencv-python (Error was similar like above except it had - Could not load the Qt platform plugin "xcb" in ".../python3.7/site-packages/cv2/qt/plugins" even though it was found.). I am using docker (with Ubuntu 18 + WSL2). The problem persist only in docker container. (The python codes work fine in windows)

            Am I missing some Ubuntu libraries? I tried installing libxcb's and many other libraries. It just does not work. Or is it related to PyQt5?

            J Offline
            J Offline
            jsulm
            Lifetime Qt Champion
            wrote on 12 Apr 2021, 07:47 last edited by
            #12

            @yashwant said in Using PyQt5 with opencv-python (cv2) causes error "could not load Qt platform plugin xcb even though it was found":

            Am I missing some Ubuntu libraries?

            Yes.
            Set QT_DEBUG_PLUGINS before starting the app and check output.

            https://forum.qt.io/topic/113070/qt-code-of-conduct

            1 Reply Last reply
            0
            • Y Offline
              Y Offline
              yashwant
              wrote on 12 Apr 2021, 08:00 last edited by
              #13

              @jsulm said in Using PyQt5 with opencv-python (cv2) causes error "could not load Qt platform plugin xcb even though it was found":

              Set QT_DEBUG_PLUGINS

              Can you tell me how can I set "export QT_DEBUG_PLUGINS =1" in docker container? Should it be written inside Dockerfile? or should I run the container something like docker run -it Image -v export QT_DEBUG_PLUGINS =1 ? or should I be using docker exec ?

              J 1 Reply Last reply 12 Apr 2021, 08:00
              0
              • Y yashwant
                12 Apr 2021, 08:00

                @jsulm said in Using PyQt5 with opencv-python (cv2) causes error "could not load Qt platform plugin xcb even though it was found":

                Set QT_DEBUG_PLUGINS

                Can you tell me how can I set "export QT_DEBUG_PLUGINS =1" in docker container? Should it be written inside Dockerfile? or should I run the container something like docker run -it Image -v export QT_DEBUG_PLUGINS =1 ? or should I be using docker exec ?

                J Offline
                J Offline
                jsulm
                Lifetime Qt Champion
                wrote on 12 Apr 2021, 08:00 last edited by
                #14

                @yashwant That I don't know, sorry.

                https://forum.qt.io/topic/113070/qt-code-of-conduct

                1 Reply Last reply
                0
                • Y Offline
                  Y Offline
                  yashwant
                  wrote on 12 Apr 2021, 08:41 last edited by
                  #15

                  ok :( any thanks!

                  1 Reply Last reply
                  0
                  • Y yashwant
                    12 Apr 2021, 07:30

                    Hi, The error still persists even when I use "pip install opencv-python-headless"

                    Error message:
                    qt.qpa.xcb: could not connect to display
                    qt.qpa.plugin: Could not load the Qt platform plugin "xcb" in "" even though it was found.
                    This application failed to start because no Qt platform plugin could be initialized. Reinstalling the application may fix this problem.

                    Available platform plugins are: eglfs, minimal, minimalegl, offscreen, vnc, webgl, xcb.

                    /opt/conda/envs/yashenv2/.tmp8gb_phfb: line 3: 17 Aborted python TAD_GUI_Contoller.py
                    ERROR conda.cli.main_run:execute(33): Subprocess for 'conda run ['python', 'TAD_GUI_Contoller.py']' command failed. (See above for error)

                    Other info: When I used opencv-python (Error was similar like above except it had - Could not load the Qt platform plugin "xcb" in ".../python3.7/site-packages/cv2/qt/plugins" even though it was found.). I am using docker (with Ubuntu 18 + WSL2). The problem persist only in docker container. (The python codes work fine in windows)

                    Am I missing some Ubuntu libraries? I tried installing libxcb's and many other libraries. It just does not work. Or is it related to PyQt5?

                    P Offline
                    P Offline
                    Pablo J. Rogina
                    wrote on 12 Apr 2021, 11:53 last edited by Pablo J. Rogina 4 Dec 2021, 11:54
                    #16

                    @yashwant said in Using PyQt5 with opencv-python (cv2) causes error "could not load Qt platform plugin xcb even though it was found":

                    qt.qpa.xcb: could not connect to display

                    Are you sure you have an X server running and available?

                    I am using docker (with Ubuntu 18 + WSL2). The problem persist only in docker container.

                    Please be aware that you have a (very) unusual environment.

                    Given that Docker is involved you may need to check how to make the container output work properly under X...

                    Upvote the answer(s) that helped you solve the issue
                    Use "Topic Tools" button to mark your post as Solved
                    Add screenshots via postimage.org
                    Don't ask support requests via chat/PM. Please use the forum so others can benefit from the solution in the future

                    Y 1 Reply Last reply 12 Apr 2021, 12:14
                    0
                    • P Pablo J. Rogina
                      12 Apr 2021, 11:53

                      @yashwant said in Using PyQt5 with opencv-python (cv2) causes error "could not load Qt platform plugin xcb even though it was found":

                      qt.qpa.xcb: could not connect to display

                      Are you sure you have an X server running and available?

                      I am using docker (with Ubuntu 18 + WSL2). The problem persist only in docker container.

                      Please be aware that you have a (very) unusual environment.

                      Given that Docker is involved you may need to check how to make the container output work properly under X...

                      Y Offline
                      Y Offline
                      yashwant
                      wrote on 12 Apr 2021, 12:14 last edited by
                      #17

                      @Pablo-J-Rogina said in Using PyQt5 with opencv-python (cv2) causes error "could not load Qt platform plugin xcb even though it was found":

                      rly under

                      1. It is just standard docker windows setup (It just uses the WSL2). It is the standard installation process.
                      2. How can I check if the Xserver is running?

                      Thanks !

                      1 Reply Last reply
                      0
                      • Y Offline
                        Y Offline
                        yashwant
                        wrote on 12 Apr 2021, 12:26 last edited by
                        #18

                        I am just trying to open a python GUI(which opens fine in windows 10) using docker setup. I did install docker for windows using the standard procedure. And I can load the python codes (without .ui - python files without GUI) into the container without any problem. The problem arises only when I try to load python files with GUI.

                        P 1 Reply Last reply 12 Apr 2021, 12:30
                        0
                        • Y yashwant
                          12 Apr 2021, 12:26

                          I am just trying to open a python GUI(which opens fine in windows 10) using docker setup. I did install docker for windows using the standard procedure. And I can load the python codes (without .ui - python files without GUI) into the container without any problem. The problem arises only when I try to load python files with GUI.

                          P Offline
                          P Offline
                          Pablo J. Rogina
                          wrote on 12 Apr 2021, 12:30 last edited by
                          #19

                          @yashwant said in Using PyQt5 with opencv-python (cv2) causes error "could not load Qt platform plugin xcb even though it was found":

                          The problem arises only when I try to load python files with GUI.

                          That's the point. You may need to check how to make a Docker container use the GUI of the host...

                          Upvote the answer(s) that helped you solve the issue
                          Use "Topic Tools" button to mark your post as Solved
                          Add screenshots via postimage.org
                          Don't ask support requests via chat/PM. Please use the forum so others can benefit from the solution in the future

                          Y 1 Reply Last reply 13 Apr 2021, 13:09
                          0
                          • A Offline
                            A Offline
                            alphaomega
                            wrote on 12 Apr 2021, 16:27 last edited by alphaomega 4 Dec 2021, 16:31
                            #20

                            Replacing opencv-python with opencv-python-headless is one option. However, for some reasons if you want to keep the library, then you could add following lines after import cv2:

                            import os, sys
                            ci_build_and_not_headless = False
                            try:
                                from cv2.version import ci_build, headless
                                ci_and_not_headless = ci_build and not headless
                            except:
                                pass
                            if sys.platform.startswith("linux") and ci_and_not_headless:
                                os.environ.pop("QT_QPA_PLATFORM_PLUGIN_PATH")
                            if sys.platform.startswith("linux") and ci_and_not_headless:
                                os.environ.pop("QT_QPA_FONTDIR")
                            

                            This is based on the cv2's init file . What it does is essentially removing environment variables that are added by the init file (This are only done at runtime and does not have permanent effect upon your system.)

                            1 Reply Last reply
                            1
                            • P Pablo J. Rogina
                              12 Apr 2021, 12:30

                              @yashwant said in Using PyQt5 with opencv-python (cv2) causes error "could not load Qt platform plugin xcb even though it was found":

                              The problem arises only when I try to load python files with GUI.

                              That's the point. You may need to check how to make a Docker container use the GUI of the host...

                              Y Offline
                              Y Offline
                              yashwant
                              wrote on 13 Apr 2021, 13:09 last edited by
                              #21

                              @Pablo-J-Rogina said in Using PyQt5 with opencv-python (cv2) causes error "could not load Qt platform plugin xcb even though it was found":

                              UI of the host..

                              Yes that was my goal (docker with gui)! and above mentioned was my error when I try GUI on docker.! Anyway thanks!

                              P 1 Reply Last reply 13 Apr 2021, 13:24
                              0
                              • Y yashwant
                                13 Apr 2021, 13:09

                                @Pablo-J-Rogina said in Using PyQt5 with opencv-python (cv2) causes error "could not load Qt platform plugin xcb even though it was found":

                                UI of the host..

                                Yes that was my goal (docker with gui)! and above mentioned was my error when I try GUI on docker.! Anyway thanks!

                                P Offline
                                P Offline
                                Pablo J. Rogina
                                wrote on 13 Apr 2021, 13:24 last edited by
                                #22

                                @yashwant said in Using PyQt5 with opencv-python (cv2) causes error "could not load Qt platform plugin xcb even though it was found":

                                that was my goal (docker with gui)!

                                Yes, I understand that. Please take into account that this issue is not related (or produced by) Qt itself so the solution might come from some other source(s), not only this forum

                                Upvote the answer(s) that helped you solve the issue
                                Use "Topic Tools" button to mark your post as Solved
                                Add screenshots via postimage.org
                                Don't ask support requests via chat/PM. Please use the forum so others can benefit from the solution in the future

                                1 Reply Last reply
                                0
                                • R Offline
                                  R Offline
                                  redeyed
                                  wrote on 22 Apr 2021, 14:08 last edited by redeyed
                                  #23

                                  @jeremy_k said in Using PyQt5 with opencv-python (cv2) causes error "could not load Qt platform plugin xcb even though it was found":

                                  worka

                                  Hello guys, so the problem is that import cv2 sets QT_* env vars.
                                  I came to this workaround, maybe it will help someone:

                                      import cv2
                                      for k, v in os.environ.items():
                                          if k.startswith("QT_") and "cv2" in v:
                                              del os.environ[k]
                                  
                                  A 1 Reply Last reply 16 Mar 2022, 09:19
                                  4
                                  • O Offline
                                    O Offline
                                    OBaladi
                                    wrote on 18 Sept 2021, 21:34 last edited by
                                    #24

                                    I solved the problem by downgrading the cv2 version, simply run
                                    python3 -m pip install opencv-contrib-python==4.1.0.25
                                    i used to have the 4.5.3.56

                                    1 Reply Last reply
                                    0
                                    • L lvlanson
                                      18 Sept 2020, 10:40

                                      Hey there,

                                      I am working on a big project, creating a GUI for working with convolutional neural networks. I need to use cv2 for image processing. For some reason I cannot import cv2 without my application creating an error.

                                      I am using pycharm as an IDE which is handling my virtual environment via pip. The librarys I use are the following:

                                      • PyQt5
                                      • pyqtchart
                                      • pyyaml
                                      • Pillow
                                      • tensorflow
                                      • distro
                                      • numpy
                                      • sklearn
                                      • pandas
                                      • opencv-python

                                      When I use cv2 I get the following error-message:

                                      qt.qpa.plugin: Could not load the Qt platform plugin "xcb" in "$HOME/Documents/gui_nn/venv/lib/python3.8/site-packages/cv2/qt/plugins" even though it was found.
                                      This application failed to start because no Qt platform plugin could be initialized. Reinstalling the application may fix this problem.

                                      Available platform plugins are: xcb, eglfs, linuxfb, minimal, minimalegl, offscreen, vnc, wayland-egl, wayland, wayland-xcomposite-egl, wayland-xcomposite-glx, webgl.

                                      eyllanescE Offline
                                      eyllanescE Offline
                                      eyllanesc
                                      wrote on 18 Sept 2021, 21:37 last edited by
                                      #25

                                      @lvlanson Also see https://stackoverflow.com/a/68417901/6622587

                                      If you want me to help you develop some work then you can write to my email: e.yllanescucho@gmal.com.

                                      1 Reply Last reply
                                      0
                                      • T Offline
                                        T Offline
                                        Thiago Oliveira
                                        wrote on 27 Oct 2021, 22:08 last edited by
                                        #26

                                        @Hikari-Tretaki, muito obrigado por sua ajuda. Também consegui resolver o meu problema com sua dica.

                                        1 Reply Last reply
                                        0
                                        • R redeyed
                                          22 Apr 2021, 14:08

                                          @jeremy_k said in Using PyQt5 with opencv-python (cv2) causes error "could not load Qt platform plugin xcb even though it was found":

                                          worka

                                          Hello guys, so the problem is that import cv2 sets QT_* env vars.
                                          I came to this workaround, maybe it will help someone:

                                              import cv2
                                              for k, v in os.environ.items():
                                                  if k.startswith("QT_") and "cv2" in v:
                                                      del os.environ[k]
                                          
                                          A Offline
                                          A Offline
                                          aria212019005
                                          wrote on 16 Mar 2022, 09:19 last edited by
                                          #27

                                          @redeyed Thankyou, I was confused around installing

                                          opencv-python
                                          

                                          and

                                          opencv-python-headless
                                          

                                          before this. But it ends with "we need both libraries, and this"

                                          1 Reply Last reply
                                          0

                                          • Login

                                          • Login or register to search.
                                          • First post
                                            Last post
                                          0
                                          • Categories
                                          • Recent
                                          • Tags
                                          • Popular
                                          • Users
                                          • Groups
                                          • Search
                                          • Get Qt Extensions
                                          • Unsolved