我想连接到远程计算机上的IPython笔记本(通过ssh隧道或https),并让ipython笔记本在新窗口中打开matplotlib图(而不是'inline')。
这个是可能的吗?
当我尝试在没有'inline‘后端的情况下绘图时,笔记本内核报告’:cannot connect to X server ',并且崩溃。
X11服务器正在客户端计算机上运行,并且我在创建X11隧道时使用-Y选项启用了ssh转发。
谢谢你的建议。
发布于 2013-04-10 11:28:52
是的,至少是通过ssh端口隧道。
(注意:示例blow是在Ubuntu 12.04上完成的,但相同的原理应该适用于其他平台)
我遇到了类似的问题,并发现如果我在端口和X转发ssh会话(即:设置端口和X转发的会话)中运行IPython笔记本,它就可以工作。笨拙和恼人,但它是有效的。例如:
at-home:~$ ssh -X -L 8889:localhost:8888 my.server
... login message from my.server
my.server:$ cd /folder/containing/my/notebooks
my.server:$ ipython notebook
[NotebookApp] .... lots of info about the IPython notebook server including
[NotebookApp] The IPython notebook is running at 'http://127.0.0.1:8888/'注意,我转发了8889端口-这意味着我在我的at-home机器上的浏览器中使用了http://localhost:8889/。对我来说,这可以很好地与Qt4Agg后端配合使用。
我怀疑,如果你以这种方式运行IPython笔记本服务器(即:在ssh -X会话中),它也可以通过https访问笔记本。请注意,绘图将出现在转发X会话的机器上。如果有人在另一台机器上的浏览器中运行笔记本,这可能有点奇怪!
可以告诉正在运行的IPython notebook服务器如何查找由某个新的ssh会话转发的X服务器,但我不确定如何查找(欢迎进行知识丰富的编辑!)。
https://stackoverflow.com/questions/11462621
复制相似问题