OpenCV 4.4.0: qt.qpa.xcb: не удалось подключиться к отображению на удаленном экземпляре EC2. Как решить эту проблему?

#python-3.x #opencv #amazon-ec2

#python-3.x #opencv #amazon-ec2

Вопрос:

Я запускаю Opencv 4.4.0 в экземпляре Ubuntu 20.04 AWS-Ec2, подключенном с помощью VSCODE через модуль удаленного проводника.

Я пытаюсь открыть изображение, которое я загрузил в проект.

 import cv2
img = cv2.imread("imgs/cat1.jpg")
cv2.imshow("Output", img)
  

Но когда я запускаю файл (нажимая зеленую стрелку) введите описание изображения здесьЯ получаю следующую ошибку:

 (env) ubuntu@ip-xxx-xx-xx-xxx:~/vhosts/opencv-ml-images$ /bin/python3 /home/ubuntu/vhosts/opencv-ml-images/chapter1.py
qt.qpa.xcb: could not connect to display 
qt.qpa.plugin: Could not load the Qt platform plugin "xcb" in "/home/ubuntu/.local/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.

Aborted (core dumped)
  

Кто-нибудь знает, что происходит? может быть, что-то связано с тем, что я запускаю opencv на удаленном компьютере? Как это сделать?

Комментарии:

1. Есть какие-нибудь успехи в решении этой проблемы? У меня такая же проблема с запуском кода python непосредственно на ec2.

2. К вашему сведению, sudo apt-get install libqt5gui5 для меня это сработало

3. Я решил прервать экземпляр Ec2. Я не смог найти решение. Я попробую ваш. Tnks

4. Получаю ту же ошибку в ec2, решение amy, пожалуйста, помогите.

5. Вы можете попробовать компьютерный терминал для запуска кода. Вы можете подключиться через ssh.

Ответ №1:

Я думаю, что вы пытаетесь запустить его при подключении к удаленному рабочему столу. У меня была такая же проблема, но я использую WSL 2 (оба очень похожи). И я решил это, настроив среду для приложений с графическим интерфейсом на WSL 2 из https://wiki.ubuntu.com/WSL . Просто запустите свой X-сервер и снова запустите код. Это должно сработать. Если нет, ответьте, чтобы мы могли разобраться с этим вместе.