1、vscode使用插件ssh树莓派
2、树莓派中./test能直接调用,但是vscode命令行不能报错
Can't initialize GTK backend in function 'cvInitSystem'
3、发现在mobaxterm中可以直接运行且能出现画面
4、发现问题:通过vscode,远程连接服务器之后,需要将界面show出来,由于程序本身是运行在服务器上的,所以无法直接显示到我们的本地系统,所以需要通过Xming来辅助实现。
解决方法
1、在vscode中添加拓展(remote X11)第一个
2、下载MobaXterm并配置连接
3、在MobaXterm中,查看当前开放的DISPLAY的地址
$ echo $DISPLAY
localhost:10.0 # 有时候会是localhost:11.0
4、开始配置vscode,首先需要将.ssh\config
文件重新编辑一下,加入以下部分
ForwardX11 yes
ForwardX11Trusted yes
ForwardAgent yes
# Read more about SSH config files: https://linux.die.net/man/5/ssh_config
Host mypi
HostName 192.168.43.101
User pi
ForwardX11 yes
ForwardX11Trusted yes
ForwardAgent yes
#Host mypi ssh设备名字随便起
# HostName 192.168.43.101 设备ip地址
# User pi 用户名
5、在vscode的项目中生成launch.json文件
6、配置launch.json,添加以下部分
"env":{
"DISPLAY":"localhost:10.0"
}
7、在vscode中输入命令echo $DISPLAY 如果不是空的,并输出了类似 localhost:10.0 的结果的话,跳过本步骤。如果输出是空的,则vim ~/.bashrc,加入以下部分
# insert environmentvariable to X11
export DISPLAY="localhost:10.0" # 可能是localhost:11.0,看MobaXterm输出情况
然后退出编辑,输入source ~/.bashrc使变量生效
这样输出了就正确了
注意:要保持mobaxterm的ssh在线才能使用
参考:vscode + ssh + xming + pyqt / matplotlib / imshow
/**************************************************分割线***************************************************/
前面我属实肤浅了
关于$DISPLAY的详细可以参考这里:Linux DISPLAY 设置
里面详细讲解了DISPLAY参数的运用,就是显示在什么地方
如果想退回到树莓派中显示就执行vim ~/.bashrc 把前面的这一行注释掉即可,然后执行source ~/.bashrc更新一下,但是我不知道我为什么不行(重启了一下就行了)
最后又能在树莓派里面输出图像了。