[英]Jupyter notebook keeps reconnecting to kernel
我可以毫無問題地打開 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)創建筆記本時,就會出現問題。 會發生什么?
我在 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;
的舊版本proxy_http_version 1.1;
在我遇到這個問題之前的最后幾個月工作得很好。
我剛剛將端口從 8888 更改為 9999,問題就消失了。
使用命令
jupyter notebook --generate-config
(它說明生成的配置文件在哪里)
生成一個配置文件,然后找到該行
c.NotebookApp.port
並更改端口。
或者,您可以在啟動服務器時直接指定端口號:
jupyter notebook --port=9999
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.