【问题标题】:ipython kernel with remote display [duplicate]带有远程显示的ipython内核[重复]
【发布时间】:2014-05-16 12:44:43
【问题描述】:

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

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

然后通过手动 ssh 隧道(请参阅here)将我本地计算机上的 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 中显示绘图,但这对我没有用,因为我经常需要放大)。

【问题讨论】:

    标签: matplotlib ipython remote-access x11-forwarding qtconsole


    【解决方案1】:

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

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

    猜你喜欢
    • 2015-05-04
    • 2012-06-05
    • 1970-01-01
    • 1970-01-01
    • 2017-05-22
    • 2015-10-27
    • 2018-06-08
    • 1970-01-01
    • 2016-11-25
    相关资源
    最近更新 更多