emacs - 尝试在 emacs 中使用 Ipython notebook 时 websocket 出错

标签 emacs websocket ipython tornado ipython-notebook

尝试评估我的代码时在缓冲区警告中收到一些错误消息

Error (websocket): in callback `on-open': Cannot send message to a closed websocket: cl-struct-websocket-frame, text, "{\"header\":{\"msg_id\":\"14735853-0ed2-4ef4-8f5a-312a198dd251\", \"username\":\"username\"\, \"session\":\"ab484abf-d4e6-4f83-2c2-de1b65264780\", \"msg_type\":\"execute_request\"}, \"metadata\":{}, \"content\":{\"code\":\"__import__('sys').stdout.write(__import__('os').getcwd())\", \"silent\":true, \\"user_variables\":[], \"user_expressions\":{}, \"allow_stdin\":false}, \"parent_header\":{}}", nil, t
Error (websocket): in callback `on-open': Wrong type argument: arrayp, nil
Error (websocket): in callback `on-close': Wrong type argument: arrayp, nil

在 ipython 服务器端,我看到了这条消息
2014-03-05 23:24:40.760 [NotebookApp] WARNING | Cross Origin WebSocket Attempt.
2014-03-05 23:24:40.761 [tornado.application] ERROR | Uncaught exception in /kernels/2691bbe3-ce95-439b-a9ce-97ec52c80988/shell
Traceback (most recent call last):
  File "/home/haroldwu/Python-test/lib/python3.3/site-packages/tornado/websocket.py", line 322, in wrapper
    return callback(*args, **kwargs)
  File "/home/haroldwu/Python-test/lib/python3.3/site-packages/IPython/html/base/zmqhandlers.py", line 114, in open
    raise web.HTTPError(404)
tornado.web.HTTPError: HTTP 404: Not Found

我做了什么:
  • 升级我的python virtualenv 和全局环境的所有包
  • 升级所有系统包(Archlinux 最新 64 位)
  • 升级所有 emacs 包
  • 在网上搜索(但没有找到有用的结果)

  • Ipython notebook 几周前在我的 emacs 上工作,但不知何故现在不起作用......
    我没有 Tornado 的经验。

    谢谢你的帮助!!! :)

    最佳答案

    我猜 emacs 不会发送 Origin由 Notebook WS 代码检查的 header 。看我的评论 https://github.com/ipython/ipython/issues/5525 .

    快速解决方法是在您的 /home/haroldwu/Python-test/lib/python3.3/site-packages/IPython/html/base/zmqhandlers.py:114 中注释掉同源检查。 .

    您可以随时添加 parsed_origin 的日志记录, originorigin_headersame_origin()函数在 zmqhandlers.py并相应地修复 emacs 包。

    关于emacs - 尝试在 emacs 中使用 Ipython notebook 时 websocket 出错,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22202182/

    相关文章:

    javascript - Emacs 在缓冲区中打印 javascript 对象属性或对象轮廓

    python - WebSocketHandler 和 TornadoWebSocketClient 何时完全删除?

    javascript - socket.io 与 socket.io-redis : get all socket object in a room

    python - jupyter notebook 起始目录

    python - 安装 shapefile/shapelib 未通过 conda 或 pip 找到

    python - 如何让 python 2.7 进入 Redhat 6.5 Linux 的系统路径

    emacs - 错误的类型参数 : keymapp, emacs-lisp-mode-map

    emacs - 用语义解析整个项目

    emacs - 为什么 Emacs(作为守护进程)比打开的帧多 1 个?

    node.js - 为什么我的 Socket.io Express 应用程序只是发送到 'sender' s' 客户端?