ipython笔记本中的端口使用

ipython笔记本中的端口使用,ipython,ipython-notebook,Ipython,Ipython Notebook,我在运行ipython笔记本服务器时遇到问题。我已经为笔记本编写了一系列自定义ROI感兴趣区域小部件,允许用户在笔记本中显示的图像上绘制矩形和椭圆等形状,然后将有关形状的信息发送回服务器上运行的python。所有信息都是通过widget traitlets传递的;形状信息位于类型为object的handles traitlet中。当我在8888端口(默认端口)上本地运行这个程序,并在同一台计算机上运行firefox访问它时,一切都正常。本例中的系统是运行OSX Yosemite的Mac 现在我试

我在运行ipython笔记本服务器时遇到问题。我已经为笔记本编写了一系列自定义ROI感兴趣区域小部件,允许用户在笔记本中显示的图像上绘制矩形和椭圆等形状,然后将有关形状的信息发送回服务器上运行的python。所有信息都是通过widget traitlets传递的;形状信息位于类型为object的handles traitlet中。当我在8888端口(默认端口)上本地运行这个程序,并在同一台计算机上运行firefox访问它时,一切都正常。本例中的系统是运行OSX Yosemite的Mac

现在我试图通过从另一台计算机ubuntu linux建立ssh连接来远程访问它,在本例中,我将本地端口8888转发到主机上的8888。这几乎是可行的:运行在客户端上的firefox能够访问ipython笔记本服务器,在笔记本中执行代码,等等。ROI小部件也可以显示,并且似乎工作正常,除了一件事:没有关于绘制形状的信息会使其返回到服务器

这不仅仅是远程访问的问题,尽管这对于我的预期用途来说是最重要的。如果我在本地运行,但使用8888以外的端口,则会出现完全相同的问题。例如,如果我在ipython_notebook_config.py中将端口设置为9999,运行笔记本服务器并使用本地firefox访问它,我会遇到完全相同的问题。类似地,如果我使用所有默认设置运行两次ipython notebook,第二个实例将绑定端口8889,因为8888被第一个实例绑定。当我使用本地firefox访问运行在8888的服务器时,一切正常;当我访问运行在8889的同时运行的服务器时,我的小部件再次无法将信息发送回服务器。如果我使用-debug,我可以看到所有通过的命令。运行在8888上的服务器接收包含形状信息的消息,如预期的那样。这些消息根本不会显示在运行于8889的服务器的日志中


有什么想法吗?

我从来没有找到我的问题的答案——为什么港口很重要。然而,我发现我的ROI小部件在JavaScript方面有一个新手错误。我对JS编程相当陌生,一旦修复,所有问题都会消失。具有讽刺意味的是,现在的难题是为什么在我使用默认端口时它能工作

真奇怪。comm消息应通过与execute消息相同的websocket通道发送。我想不出为什么一个能行,另一个不行。