我从一个有效的jupyter设置开始,一切正常。我可以从笔记本上中断或重新启动内核,而不会出现任何问题。
但是,如果我更改了一些jupyter配置或安装了一些模块,并重新启动了jupyter服务器-我必须等待大约5分钟,以便打开的笔记本恢复对python内核的访问权限。
启动jupyter(本地shell)
jupyter笔记本
在chrome中创建一个新的笔记本(python 3),这将导致以下网址:
http://localhost:8888/notebooks/Untitled1.ipynb?kernel_name=python3
在该新笔记本中创建并运行一个单元格:
print(1)
重新启动jupyter(Ctrl-C,然后按[yes]退出提示),然后:
jupyter笔记本
使用相同的单电池笔记本进入相同的Chrome标签,然后单击“确定”以弹出"Connection failed"
观察笔记本显示:[Connecting to Kernel]
失败。
尝试通过菜单重新启动内核,通常它卡在[Kernel Starting...]
中,并且在几次手动强制内核重新启动后,它成功了[Kernel Created]
,但尝试失败是错误的成功运行单元格会显示[*]
忙碌信号,什么也没发生。
等待大约5分钟后,它会自动恢复。
同一设置在同一台计算机上的Firefox中可以正常工作。
github上有几张与2015年相同的票证(例如this,但以某种方式他们将其归咎于chrome,显然问题在3年后仍然存在。
有什么办法解决这个问题吗?
谢谢。
这是打开笔记本电脑重新连接/重新启动过程中的日志:
[I 22:54:09.032 NotebookApp] Kernel restarted: 9aa08efb-74b1-471c-ad0f-bb9dc3577c28
[W 22:54:09.343 NotebookApp] Replacing stale connection: 6cc8a446-1dc0-4c01-86ab-f95ae99c24af:10a12a1b834f43298fb9e6f344bc6b26
[W 22:54:45.348 NotebookApp] Replacing stale connection: 6cc8a446-1dc0-4c01-86ab-f95ae99c24af:10a12a1b834f43298fb9e6f344bc6b26
[W 22:55:37.359 NotebookApp] Replacing stale connection: 6cc8a446-1dc0-4c01-86ab-f95ae99c24af:10a12a1b834f43298fb9e6f344bc6b26
[W 22:57:01.367 NotebookApp] Replacing stale connection: 6cc8a446-1dc0-4c01-86ab-f95ae99c24af:10a12a1b834f43298fb9e6f344bc6b26
[I 22:57:41.337 NotebookApp] Adapting to protocol v5.1 for kernel 9aa08efb-74b1-471c-ad0f-bb9dc3577c28
[W 22:57:41.350 NotebookApp] Replacing stale connection: 9aa08efb-74b1-471c-ad0f-bb9dc3577c28:768880fb9a244da99735e983bd6c36c6
[I 22:57:41.351 NotebookApp] Starting buffering for 9aa08efb-74b1-471c-ad0f-bb9dc3577c28:768880fb9a244da99735e983bd6c36c6
[I 22:57:41.351 NotebookApp] Adapting to protocol v5.1 for kernel 9aa08efb-74b1-471c-ad0f-bb9dc3577c28
[I 22:57:41.352 NotebookApp] Restoring connection for 9aa08efb-74b1-471c-ad0f-bb9dc3577c28:768880fb9a244da99735e983bd6c36c6
[I 22:57:49.324 NotebookApp] Starting buffering for 9aa08efb-74b1-471c-ad0f-bb9dc3577c28:768880fb9a244da99735e983bd6c36c6
[I 22:57:49.327 NotebookApp] Adapting to protocol v5.1 for kernel 9aa08efb-74b1-471c-ad0f-bb9dc3577c28
[I 22:57:49.328 NotebookApp] Restoring connection for 9aa08efb-74b1-471c-ad0f-bb9dc3577c28:768880fb9a244da99735e983bd6c36c6
答案 0 :(得分:2)
如果您不使用多用户环境,则解决方案是禁用安全功能,以防止用于启动浏览器的身份验证令牌可见(该令牌可以被同一计算机上的其他用户劫持)。
如果您还没有jupyter笔记本配置文件(在Linux上通常是~/.jupyter/jupyter_notebook_config.py
):
创建它:
$ jupyter notebook --generate-config
在文本编辑器中打开自动生成的文件并找到以下行:
#c.NotebookApp.use_redirect_file = True
如果已注释掉该行,则取消注释
将True
替换为False
如果您已经有了配置文件,但没有此设置,只需将其添加到其中即可:
c.NotebookApp.use_redirect_file = False
更改配置文件后,您需要重新启动jupyter服务器。
请注意,您需要jupyter-notebook> = 6.0.3才能使用此功能。
最后,请记住,每次重新启动jupyter服务器后,您必须重新加载每个笔记本才能正常工作。仅重新启动内核并不能解决此问题(即使它误导性地表示内核已重新启动)。
答案 1 :(得分:0)
这是一项安全功能,Chrome没错,它只是在5分钟后自动重新加载,因为您以某种方式在各个标签之间进行了切换。
如果您在登录时打开站点,您看到的只是主站点URL(而不是您的密码),与新的jupyter笔记本相同,您需要一个特殊的(随机)密钥,就像获得密码一样jupyter服务器在启动任何内核之前都工作在第一位,当您启动jupyter并打开“ main”选项卡时,它会自动发生,浏览器会保留打开(或刷新)任何新选项卡的密钥
当您不刷新旧页面时,您只是注销了,
此功能用于保护您免受观看您发送到公共Web服务器的内容的人的侵害
我仍然看不到您的情况有什么用(保留页面,然后重新启动服务器),这就像暂停后端,但希望前端仍能正常工作!