Matplotlib 带远程显示的ipython内核

Matplotlib 带远程显示的ipython内核,matplotlib,ipython,remote-access,x11-forwarding,qtconsole,Matplotlib,Ipython,Remote Access,X11 Forwarding,Qtconsole,我通过以下方式在远程计算机上使用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 kerne

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

一种更简单、更可靠的方法是像您那样远程运行
ipython
,而不是尝试远程绘制图形,而是远程保存它们。同时,使用
sftp
挂载远程目录,并在本地文件浏览器中打开它。确保刷新目录视图,以防远程保存的图像不可见(否则可能需要一些时间)。注意刷新远程目录视图的一种简单方法。

cf