我通过以下方式在远程机器上使用 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 中显示绘图,但这对我没有用,因为我经常需要放大)。