我使用vscode远程ssh并通过ssh连接到服务器(集群中的一个节点)。我的本地机器是Windows,我的主机是ubuntu。我的vscode用于python中的代码。
几个星期以来,我一直试图运行python代码,并在调试控制台中显示图像,就像我们在普通终端或jupyter笔记本中所做的那样,但我注意到我根本无法在调试控制台中显示图像。下面是一个玩具例子
import numpy as np
import matplotlib.pyplot as plt
img = np.random.rand(300,200)
plt.imshow(img);plt.show()
基本上,当我尝试在调试控制台中执行plt.imshow(img);plt.show()
时,要么一无所获,要么得到qt.qpa.screen: QXcbConnection: Could not connect to display localhost:0.0 Could not connect to any X display.
。我尝试了几种方法,例如使用x11扩展或在putty中添加x11转发,或者在launch.json
中添加显示。然而,它们都不起作用。
我得出的结论是,python中的vscode、remote ssh和调试控制台还没有这个特性。但是如果你知道怎么做的话请告诉我。
我希望我能清楚地看到,在正常情况下显示图像是有效的,而在调试情况下则不起作用。请注意,当我进行调试时,我不想在调试控制台的外面显示图像。
谢谢
发布于 2021-11-04 11:53:49
看来你已经完成了我提出的解决方案的第一步。
terminal.integrated.env.linux
。单击Edid settings.jsonterminal.integrated.env.linux
到此"terminal.integrated.env.linux": {
"DISPLAY": "localhost:10.0",
}
ssh -X user@host
。
现在,这将无限期地工作,只需打开x11-转发在一边每次。我目前正在寻找的解决方案的缺点是,每次希望在本地开发时,您都需要删除"DISPLAY": "localhost:10.0"
,这不是最优的。
编辑:由于您显然是在使用windows,所以您需要使用X11转发配置putty,并使用xming或其他x11转发软件来代替我的步骤4。
https://stackoverflow.com/questions/67326058
复制相似问题