【问题标题】:Jupyter notebook keeps reconnecting to kernelJupyter notebook 不断重新连接到内核
【发布时间】:2017-02-20 16:54:45
【问题描述】:

我可以毫无问题地打开 Jupyter 控制台,但是当我创建一个新笔记本时,它会一直连接到内核并从内核断开连接(“连接到内核”/“已连接”消息一直显示在右上角) .这是 Chrome 的控制台吐出的内容(在 Firefox 中也是如此):

Untitled3.ipynb?kernel_name=python3:121 loaded custom.js
default.js:48Default extension for cell metadata editing loaded.
rawcell.js:82Raw Cell Format toolbar preset loaded.
slideshow.js:43Slideshow extension for metadata editing loaded.
menubar.js:240actions jupyter-notebook:find-and-replace does not exist, still binding it in case it will be defined later...
MenuBar.bind_events @ menubar.js:240
extension.js Failed to load resource: the server responded with a status of 404 (Not Found)
main.js:184Widgets are not available.  Please install widgetsnbextension or ipywidgets 4.0
(anonymous) @ main.js:184
session.js:54Session: kernel_created (1b236a4b-902d-4b33-9118-63013be4f270)
kernel.js:456Starting WebSockets: ws://[myipaddress]:[myport]/api/kernels/682dc980-d7c6-41e0-b984-14ceb7f8e50c
kernel.js:101Kernel: kernel_connected (682dc980-d7c6-41e0-b984-14ceb7f8e50c)
kernel.js:101Kernel: kernel_disconnected (682dc980-d7c6-41e0-b984-14ceb7f8e50c)
kernel.js:559Connection lost, reconnecting in 1 seconds.
kernel.js:101Kernel: kernel_reconnecting (682dc980-d7c6-41e0-b984-14ceb7f8e50c)
kernel.js:456Starting WebSockets: ws://[myipaddress]:[myport]/api/kernels/682dc980-d7c6-41e0-b984-14ceb7f8e50c
kernel.js:101Kernel: kernel_connected (682dc980-d7c6-41e0-b984-14ceb7f8e50c)
kernel.js:101Kernel: kernel_disconnected (682dc980-d7c6-41e0-b984-14ceb7f8e50c)
kernel.js:559Connection lost, reconnecting in 1 seconds.
kernel.js:101Kernel: kernel_reconnecting (682dc980-d7c6-41e0-b984-14ceb7f8e50c)
kernel.js:456Starting WebSockets: ws://[myipaddress]:[myport]/api/kernels/682dc980-d7c6-41e0-b984-14ceb7f8e50c
kernel.js:101Kernel: kernel_connected (682dc980-d7c6-41e0-b984-14ceb7f8e50c)
kernel.js:101Kernel: kernel_disconnected (682dc980-d7c6-41e0-b984-14ceb7f8e50c)
kernel.js:559Connection lost, reconnecting in 1 seconds.
# ... more of the same, over and over ... #

问题是,当我在运行 Jupyter 服务器的同一台机器(我放在家里的 MacBook)上创建笔记本时,一切正常。当我从另一台机器(我在公司使用的运行 Windows 的 PC)创建笔记本时,就会出现问题。会发生什么?

【问题讨论】:

    标签: python ipython jupyter


    【解决方案1】:

    我在 nginx 代理后面使用 jupyter。我遇到了和你一样的问题。经过深入研究,我发现问题存在于我的 nginx conf 中。

    将以下行添加到我的 nginx conf 后,它可以工作了!

    proxy_http_version 1.1;

    这是完整的 nginx 配置文件:

    upstream my-notebook-workhorse {
      server 127.0.0.1:8888 fail_timeout=0;
    }
    
    map $http_upgrade $connection_upgrade {
        default upgrade;
        '' close;
    }
    
    # let my-notebook deal with the redirection
    server {
      listen                    80;
      server_name               my-notebook.wh;
      server_tokens             off;
      root                      /dev/null;
    
      # Increase this if you want to upload larger attachments
      client_max_body_size      20m;
    
      # individual nginx logs for this vhost
      access_log                /var/log/nginx/my-notebook_access.log;
      error_log                 /var/log/nginx/my-notebook_error.log;
    
      location / {
        proxy_pass http://my-notebook-workhorse;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header Host $host;
        proxy_set_header X-Forwarded_For $proxy_add_x_forwarded_for;
        proxy_set_header X-NginX-Proxy true;
        auth_basic "Restricted Content";
    
        # WebSocket support
        proxy_http_version 1.1;
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection $connection_upgrade;
        proxy_set_header Origin "";
        proxy_read_timeout 86400;
      }
    }
    

    我不知道为什么会这样,因为没有proxy_http_version 1.1; 的旧版本在我遇到问题之前的最后几个月运行良好。

    【讨论】:

    【解决方案2】:

    我刚刚把端口从8888改成了9999,问题就解决了。

    使用命令

    jupyter notebook --generate-config
    

    (它说明生成的配置文件在哪里)

    生成配置文件,然后找到该行

    c.NotebookApp.port
    

    并更改端口。

    也可以在启动服务器时直接指定端口号:

    jupyter notebook --port=9999
    

    【讨论】:

    • 我卡在 c.NotebookApp.port 上。我在Linux机器上试过。如何在命令行中输入?
    猜你喜欢
    • 2018-06-09
    • 1970-01-01
    • 2019-07-27
    • 2019-07-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-11-05
    • 2021-07-19
    相关资源
    最近更新 更多