如何通过SSH运行OpenCV图像展示脚本 解决GTK后端初始化报错问题
报错原因
你通过SSH远程执行脚本时,默认进程的DISPLAY环境变量没有指向远程主机(接投影仪的设备)的本地X11显示服务,GTK初始化时找不到可用的显示输出就会抛出该错误。
修复方法
- 第一步:配置X服务访问权限
先在接投影仪的主机本地终端执行以下命令,开放本地X服务的访问权限:
如果你的脚本是用普通用户运行,后续保持用同一用户SSH登录即可;如果是root运行,该命令会给root开放访问权限。xhost +local: - 第二步:执行脚本时指定DISPLAY变量
SSH登录后运行脚本前,先指定DISPLAY环境变量指向本地显示设备,一般默认值为:0,示例命令:
如果上述配置不生效,可以在接投影仪的主机本地终端执行DISPLAY=:0 python 你的脚本文件名.pyecho $DISPLAY拿到正确的显示编号,替换上面的:0即可。 - 可选:脚本内强制指定GTK后端
你可以在脚本开头导入OpenCV后,添加以下代码强制指定GUI后端:import os os.environ["CV_GUI_BACKEND"] = "gtk3"
如果按照上述步骤操作还是报错,可以尝试重新安装带GTK支持的OpenCV包:
pip uninstall opencv-python opencv-contrib-python -y pip install opencv-python opencv-contrib-python
内容的提问来源于stack exchange,提问作者Paul Jurczak
相关产品推荐
相关产品推荐

