问题描述
在VSCode中进入conda对应的虚拟环境对python代码进行调试,报错cannot connect to X server:
解决方法
方案1:
关掉程序中所有用于显示的代码,程序正常运行,没有报错.
在一些场景下,我们可能需要在调试的同时进行可视化显示操作,如果关掉显示代码可能不能满足我们的需求
方案2:
配置远程DISPLAY环境变量.
1.首先在对应服务器终端中输入:
echo $DISPLAY
得到远程终端的display number,如下图中的:localhost:10.0
2.然后在vscode terminal中输入
export DISPLAY=localhost:10.0
或者在测试主程序中加入以下代码
import os
os.environ['DISPLAY'] = 'localhost:11.0'
echo $DISPLAY指令必须在可进行正常可视化显示的终端中输入,直接在vscode中输入,可能什么都没有显示;
可以尝试直接进行第二步,参数设置同上,看看是否可以在调试中进行显示
其它:
DISPLAY 是 Linux/Unix 类操作系统中的环境变量,用来设置将图形显示到何处。
DISPLAY 环境变量格式如下host:NumA.NumB,host指Xserver所在的主机主机名或者ip地址, 图形将显示在这一机器上, 可以是启动了图形界面的Linux/Unix机器, 也可以是安装了Exceed, X-Deep/32等Windows平台运行的Xserver的Windows机器. 如果Host为空, 则表示Xserver运行于本机, 并且图形程序(Xclient)使用unix socket方式连接到Xserver,而不是TCP方式. 使用TCP方式连接时, NumA为连接的端口减去6000的值, 如果NumA为0, 则表示连接到6000端口; NumB则几乎总是0.