0

我通过以下方式在远程机器上使用 ipython 内核:

user@remote_machine$ ipython kernel
[IPKernelApp] To connect another client to this kernel, use:
[IPKernelApp] --existing kernel-24970.json

然后通过手动 ssh 隧道(见这里)将我本地机器上的 qtconsole 连接到它:

user@local_machine$ for port in $(cat kernel-24970.json | grep '_port' | grep -o '[0-9]\+'); do ssh remote_machine -Y -f -N -L $port:127.0.0.1:$port; done
user@local_machine$ ipython qtconsole --existing kernel-24970.json

这工作正常。但是,为了在调试时可视化我的数据,我想使用 matplotlib.pyplot。虽然我已经在我的 ssh 隧道上启用了 X11 转发(通过 -Y),但当我尝试绘制某些东西时,我收到以下错误:

TclError: no display name and no $DISPLAY environment variable

好像X11转发没有任何效果。

此外,当我可以访问远程机器时,我启动了远程内核:

user@remote_machine$ ipython qtconsole

并在我的本地机器上重复相同的过程。这一次,我没有收到任何错误。但是这些数字是在远程机器上而不是我的本地机器上绘制的。

那么,有谁知道是否可以连接到远程 ipython 内核并在本地显示绘图?(请注意,内联模式有效,并在本地 qtconsole 中显示绘图,但这对我没有用,因为我经常需要放大)。

4

1 回答 1

0

一种更简单、更强大的方法是ipython像您一样远程运行,而不是尝试远程绘制图形,而是远程保存它们。同时使用 挂载远程目录sftp,并在本地文件浏览器中打开。

确保刷新目录视图,以防远程保存的图像不可见(否则可能需要一些时间才能发生)。此处记录了一种刷新远程目录视图的简单方法。

于 2014-09-01T23:49:09.987 回答