【问题标题】:port usage in the ipython notebookipython 笔记本中的端口使用情况
【发布时间】:2014-11-06 15:56:07
【问题描述】:

我在运行 ipython 笔记本服务器时遇到问题。我为笔记本编写了一系列自定义 ROI(感兴趣区域)小部件,允许用户在笔记本中显示的图像上绘制矩形和椭圆等形状,然后将有关形状的信息发送回服务器上运行的 python .所有信息都通过小部件 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,我可以看到所有的 comm_msgs 都通过了。 8888 上运行的服务器按预期接收包含形状信息的消息。这些消息根本不会显示在运行在 8889 的服务器的日志中。

有什么想法吗?

【问题讨论】:

  • 这很奇怪。通信消息应通过与执行消息相同的 websocket 通道发送。我想不出为什么一个会起作用而另一个不会。

标签: ipython ipython-notebook


【解决方案1】:

我从来没有弄清楚我的问题的答案——为什么端口很重要。但是,我发现我的 ROI 小部件在 JavaScript 方面有一个新手错误(我对 JS 编程还很陌生),修复后,所有问题都消失了。具有讽刺意味的是,现在的难题是为什么当我使用默认端口时它会起作用!

【讨论】:

    猜你喜欢
    • 2018-09-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-06-02
    相关资源
    最近更新 更多