关于Ubuntu系统中使用VSCode在conda的虚拟环境中调试python代码时遇到的“: cannot connect to X server”问题的解决方法

一级标题随便写点啥吧反正没啥用

前言(这部分完全可以不用看…)

很久很久以前,大概几个月?写了篇文章是关于Windows环境下跑SiamMask算法的文章,当时说实习单位会给配电脑,电脑到了就换Ubuntu。
终于过了好几个月历经千辛万苦的电脑到手了(虽然配置很一般),还好一块配了台双显卡的服务器让我跑算法用,这周刚折腾了好久终于装好了系统和环境,终于能开始干活了。感动QAQ,在我感动的时候,下面的剧情是这样的
上周某天
老师:那个,你那个算法不行,到时候平台上没那么大运算力
我:要不咱们稍微提升一下平台配置?换个好点的?
老师:行,那你去找吧
第二天
我:找到了老师,您看这个怎么样,挺便宜的,不到4k,性能还行
老师:性价比看着确实不错
我:那咱们换一下?
老师:不行,这个工控机太大了,换个小的,还要以前那种
我:但是以前那么大的都是没显卡的啊,怎么做深度网络运算啊
老师:那要不你换个算法吧,换个简单的,我看XXX就挺好的
我:好,那我在去看新的what!我之前看了那么久的深度网络算法就这么扔了?
本周一
老师:你这个算法不行啊,没创新点,速度你确实提高了不少,但是没改进到时候没法写paper
我:…一个四五年前就淘汰了的算法你让我哪去找创新点啊
老师:你看你前些天学的那个SiamMask里面的跟踪框旋转怎么样?
我:可是那个要用深度网络先把Mask提取出来才行啊然后用像素求两个极限再旋转,但是现在没有深度网络。您是说有什么办法可以不提取Mask直接旋转么?
老师:这边这个算法使用的XXX应该可以结合,具体怎么做我现在还没看出来,但是我觉得结合起来效果应该不错。
我:好,那我这几天想一下无力吐槽,jpg
昨天
虽然到现在也不知道怎么结合,但是我真的开始一个个试Mask提取和图像分割算法了,希望有思路,实在不行就在我想的边界框回归上下功夫。

错误出现场景

Ubuntu18.04(双系统还有个win10但是在不同的硬盘上,专门完全隔离开了)
Anaconda 2019.10
python3.8
opencv4.1.1
VSCode1.39.2

在VSCode中进入conda创建的虚拟环境对python进行调试,出现错误: cannot connect to X server
已知环境和代码没有任何问题,因为昨天刚装好之后调了完全一样的代码,没有任何问题,今天重新开电脑再来就不行了
报错只在使用VSCode调试时出现,在VSCode中运行或者在终端中运行都不产生问题
在这里插入图片描述

尝试过但无效的解决方法

虽然没有解决但还是记录一下,可能有的朋友用这两种方法可以解决

  1. 使用命令xhost +export DISPLAY=:0之类的方案,后面那个0也用他们说的0.0和1之类的试过,不论是当前用户还是root用户,在VSCode里面的终端还是系统自带的终端,真实环境还是conda的虚拟环境都试过了都不行。
  2. 折腾vnc,至少对我这个问题没有帮助,其他的不好说。
  3. 不用imshow函数…因为这个问题的意思是连接不到显示的输出,所以只需要把显示部分去掉就好了。这种方法我是真的没试过,用Opencv本来就是做图像的,中间没有图像输出直接看数组在下还做不到。如果有朋友可以这么调试可以尝试一下。

解决方案

  1. 按照下图方式进入设置页面
    在这里插入图片描述
  2. 点击右上部分三个按钮中左边那个,以json格式打开设置
    在这里插入图片描述
  3. "terminal.integrated.inheritEnv": false,这行删了,保存,关掉随后重新打开VSCode
  4. 理论上这样重新调试就不会出问题了

造成这种问题的原因

在打开VSCode的时候,只要装了python插件,应该都会出来这个框
在这里插入图片描述意思似乎是说它检测到咱们用的conda了,如果在VSCode自带的终端里出现了与这个环境相关的问题,建议把这一项(似乎是终端的环境继承?这点不太明白干啥用的,有会的大佬请多指教,谢谢!)改称false。然而改过去之后,才出了问题。所以要改回来Orz

后记

最近其实写了很多blog,和目标跟踪、python以及C++相关的都有,不过大多数都是有点笔记的意思,准备先把自己的东西弄会了,有空的话再整理发出来…就这样,继续调代码去

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值