python-3.x - 当我通过远程 ssh 使用 vscode 时如何在调试控制台中可视化图像

标签 python-3.x remote-debugging vscode-debugger vscode-remote x11-forwarding

我正在使用 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 中的调试控制台还没有这个功能。但是,如果您知道一种方法,请告诉我。

我希望我清楚正常情况下显示图像是有效的,而在调试情况下是无效的。 请注意,当我进行调试时,我不想在调试控制台外显示图像。

谢谢

最佳答案

看来您已经完成了我提出的解决方案的第一步。

  1. 使用 ctrl+ 打开 vscode 中的设置,然后搜索 terminal.integrated.env.linux。单击 Edid settings.json
  2. 更新terminal.integrated.env.linux为此
"terminal.integrated.env.linux": {
    "DISPLAY": "localhost:10.0",
  }
  1. 关闭vscode
  2. 使用 ssh -X user@host 打开到服务器的 ssh 连接
  3. 像往常一样打开 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/

相关文章:

python - Python 3.x 中的向量和矩阵

python - 模块未找到错误 : No module named 'mlxtend'

python - 如何从 "type"实例中获取类名?

java - 是否可以在 JSVC 中启用端口以进行远程调试?

serial-port - 如何使用 ST-Link V2 进行 UART 通信?

angular - 仅当 dotnet api 在我的 launch.json 文件中初始化后,才可以启动我的 Angular SPA 吗?

python - 使用Python OpenCV在图像路径(中文,日文,韩文)中读取/加载带有Unicode字符的图像

android - Weinre 没有找到任何目标

node.js - 在VS Code中调试在Docker中运行的Node Typescript应用

visual-studio-code - 用于启动/重启的单个 VS 代码快捷方式