Я запускаю свой код Python в VSCode в Windows 10, который подключается по ssh к удаленному RPi 4. Получил эту ошибку:
qt.qpa.xcb: could not connect to display :1
qt.qpa.plugin: Could not load the Qt platform plugin "xcb" in "/home/pi/mambaforge/envs/mb/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.
Stack trace (most recent call last):
#25 Object "python", at 0x558888297b, in
#24 Object "/lib/aarch64-linux-gnu/libc.so.6", at 0x7f847bbe17, in __libc_start_main
#23 Object "python", at 0x55888840a3, in Py_BytesMain
#22 Object "python", at 0x5588883a3b, in Py_RunMain
#21 Object "python", at 0x558895f4eb, in PyRun_SimpleFileExFlags
#20 Object "python", at 0x558895f323, in
#19 Object "python", at 0x558895bfcb, in
#18 Object "python", at 0x558895beb7, in
#17 Object "python", at 0x5588924057, in PyEval_EvalCode
#16 Object "python", at 0x5588924017, in PyEval_EvalCodeEx
#15 Object "python", at 0x5588923c4f, in _PyEval_EvalCodeWithName
#14 Object "python", at 0x5588881e9b, in _PyEval_EvalFrameDefault
#13 Object "python", at 0x558888fe7f, in _PyObject_MakeTpCall
#12 Object "python", at 0x558888f7af, in
#11 Object "/home/pi/mambaforge/envs/mb/lib/python3.8/site-packages/cv2/cv2.abi3.so", at 0x7f77b8a43b, in
#10 Object "/home/pi/mambaforge/envs/mb/lib/python3.8/site-packages/cv2/cv2.abi3.so", at 0x7f7876e87f, in
#9 Object "/home/pi/mambaforge/envs/mb/lib/python3.8/site-packages/cv2/cv2.abi3.so", at 0x7f7878089b, in
#8 Object "/home/pi/mambaforge/envs/mb/lib/python3.8/site-packages/cv2/cv2.abi3.so", at 0x7f78774537, in
#7 Object "/home/pi/mambaforge/envs/mb/lib/python3.8/site-packages/cv2/../opencv_contrib_python.libs/libQt5Widgets-b1296c1e.so.5.15.0", at 0x7f7585db03, in QtOpenCVPython::QApplicationPrivate::init()
#6 Object "/home/pi/mambaforge/envs/mb/lib/python3.8/site-packages/cv2/../opencv_contrib_python.libs/libQt5Gui-a45894d1.so.5.15.0", at 0x7f74f9fa77, in QtOpenCVPython::QGuiApplicationPrivate::init()
#5 Object "/home/pi/mambaforge/envs/mb/lib/python3.8/site-packages/cv2/../opencv_contrib_python.libs/libQt5Core-9e162752.so.5.15.0", at 0x7f749710ff, in QtOpenCVPython::QCoreApplicationPrivate::init()
#4 Object "/home/pi/mambaforge/envs/mb/lib/python3.8/site-packages/cv2/../opencv_contrib_python.libs/libQt5Gui-a45894d1.so.5.15.0", at 0x7f74f9ce07, in QtOpenCVPython::QGuiApplicationPrivate::createEventDispatcher()
#3 Object "/home/pi/mambaforge/envs/mb/lib/python3.8/site-packages/cv2/../opencv_contrib_python.libs/libQt5Gui-a45894d1.so.5.15.0", at 0x7f74f9c963, in QtOpenCVPython::QGuiApplicationPrivate::createPlatformIntegration()
#2 Object "/home/pi/mambaforge/envs/mb/lib/python3.8/site-packages/cv2/../opencv_contrib_python.libs/libQt5Core-9e162752.so.5.15.0", at 0x7f7477213b, in QtOpenCVPython::QMessageLogger::fatal(char const*, ...) const
#1 Object "/lib/aarch64-linux-gnu/libc.so.6", at 0x7f847bba9f, in abort
#0 Object "/lib/aarch64-linux-gnu/libc.so.6", at 0x7f847ceeac, in gsignal
Aborted (Signal sent by tkill() 5843 1000)
Aborted
Вот мой C:\Users\mywname\config
Host 192.168.1.8
HostName 192.168.1.8
User pi
ForwardX11 yes
ForwardX11Trusted yes
EnableSSHKeysign yes
IdentityFile C:\Users\<myusername>\.ssh\id_rsa
Немного контекста кода: Мой код Python, который находится на RPi и вызывает OpenCV cv.image(), чтобы показать видео с камеры, подключенной к RPi. Я хочу запустить код из моего VSCode в Windows 10 и увидеть, как окно видео появляется в моей Windows 10.
У меня не установлен QT в моей Windows 10, у меня есть opencv-contrib-python 4.7.0.72
на моем RPi, и я не хочу менять его на безголовый opencv, поскольку одной из библиотек Python требуется opencv-contrib-python 4.7.0.72
.
Что я сделал Провел некоторое исследование и обнаружил, что мне нужно включить переадресацию X11, поэтому я установил Remote X11 и Remote X11 (SSH), также настроил свой вход в SSH с парами закрытого и публичного ключей и протестировал запуск ssh с терминала. напрямую, он работает, не спрашивая у меня пароль.
Также обнаружил, что мне нужно использовать магию:
export DISPLAY=:0
Я пробовал, вместо того, чтобы показывать видео на моей Windows 10, оно показывает видео на RPi, что имеет смысл.
Поэтому я изменил его на export DISPLAY=:1
, а затем получил ошибку.
Итак, мой вопрос: как я могу отобразить окно видео в моей Windows 10.
Вы должны настроить сервер X11 на своем ПК с Windows.
спасибо @ relent95, я обнаружил, что мне нужно установить X11 XLauncher на свой ПК с Windows, а также настроить доступ по SSH.
спасибо @eyllanesc, неплохая идея добавить отладочную информацию.
Наконец-то я понял, как это сделать:
echo DISPLAY=$DISPLAY
Добавьте
export QT_DEBUG_PLUGINS=1