我正在使用 vscode 远程 ssh 并通过 ssh 连接到我的服务器(集群中的一个节点)。 我的本地机器是 Windows,我的主机是 ubuntu。 我的 vscode 正在使用 python 编写代码。
我尝试了几个星期,以便能够运行 python 代码并在调试控制台中显示图像,就像我们在普通终端或 jupyter notebook 中所做的那样,但我注意到我无法显示调试控制台中的图像。 这是一个玩具示例
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:无法连接到显示器 localhost:0.0 无法连接到任何 X 显示器。
。
我尝试了几种方法,例如使用 x11 extenson 或在 putty 中添加 x11 转发或在 launch.json
中添加 Display。然而,它们都不起作用。
我得出的结论是 vscode 远程 ssh 和 python 中的调试控制台还没有这个功能。但是,如果您知道一种方法,请告诉我。
我希望我清楚正常情况下显示图像是有效的,而在调试情况下是无效的。 请注意,当我进行调试时,我不想在调试控制台外显示图像。
谢谢
最佳答案
看来您已经完成了我提出的解决方案的第一步。
- 使用 ctrl+ 打开 vscode 中的设置,然后搜索
terminal.integrated.env.linux
。单击 Edid settings.json - 更新
terminal.integrated.env.linux
为此
"terminal.integrated.env.linux": {
"DISPLAY": "localhost:10.0",
}
- 关闭vscode
- 使用
ssh -X user@host
打开到服务器的 ssh 连接 - 像往常一样打开 vscode 并使用远程开发插件。
现在,这将无限期地工作,每次只需打开侧面的 x11-forwarding 即可。我目前正在寻找解决方案的缺点是每次您希望在本地开发时都需要删除 "DISPLAY": "localhost:10.0"
,这不是最佳选择。
编辑:由于您显然使用的是 Windows,因此您需要为 Putty 配置 X11 转发并使用 xming 或其他 x11 转发软件代替我的第 4 步。
关于python-3.x - 当我通过远程 ssh 使用 vscode 时如何在调试控制台中可视化图像,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/67326058/