使用当前 运行 进程连接到 运行 Jupyter 内核
Connecting to a running Jupyter kernel with a currently running process
周末我在 Jupyter notebook 中进行了一些长时间的处理 运行,但浏览器 window 在某个时候关闭了。根据 this answer, the process shouldn't have been canceled, but whatever output I would have gotten would be lost. This is okay, as I only need access to the resulting objects from the process. My goal is to connect to the running kernel in the console, and work from there. According to Jupyter's documentation,我应该可以用
做到这一点
jupyter console --existing
但是在 运行 这并挂起一分钟后,我得到以下内容
Traceback (most recent call last):
File "/anaconda/envs/py35/lib/python3.5/site-packages/jupyter_console/ptshell.py", line 323, in init_kernel_info
reply = self.client.get_shell_msg(timeout=1)
File "/anaconda/envs/py35/lib/python3.5/site-packages/jupyter_client/client.py", line 77, in get_shell_msg
return self.shell_channel.get_msg(*args, **kwargs)
File "/anaconda/envs/py35/lib/python3.5/site-packages/jupyter_client/blocking/channels.py", line 57, in get_msg
raise Empty
queue.Empty
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "/anaconda/envs/py35/bin/jupyter-console", line 11, in <module>
sys.exit(main())
File "/anaconda/envs/py35/lib/python3.5/site-packages/jupyter_core/application.py", line 267, in launch_instance
return super(JupyterApp, cls).launch_instance(argv=argv, **kwargs)
File "/anaconda/envs/py35/lib/python3.5/site-packages/traitlets/config/application.py", line 657, in launch_instance
app.initialize(argv)
File "<decorator-gen-116>", line 2, in initialize
File "/anaconda/envs/py35/lib/python3.5/site-packages/traitlets/config/application.py", line 87, in catch_config_error
return method(app, *args, **kwargs)
File "/anaconda/envs/py35/lib/python3.5/site-packages/jupyter_console/app.py", line 141, in initialize
self.init_shell()
File "/anaconda/envs/py35/lib/python3.5/site-packages/jupyter_console/app.py", line 114, in init_shell
client=self.kernel_client,
File "/anaconda/envs/py35/lib/python3.5/site-packages/traitlets/config/configurable.py", line 412, in instance
inst = cls(*args, **kwargs)
File "/anaconda/envs/py35/lib/python3.5/site-packages/jupyter_console/ptshell.py", line 272, in __init__
self.init_kernel_info()
File "/anaconda/envs/py35/lib/python3.5/site-packages/jupyter_console/ptshell.py", line 326, in init_kernel_info
raise RuntimeError("Kernel didn't respond to kernel_info_request")
RuntimeError: Kernel didn't respond to kernel_info_request
发生这种情况是因为我的 运行 长进程仍在内核上 运行,还是可能存在其他问题?当上述过程完成后,我是否可以使用上述命令按预期连接?
解决方案*击鼓声*:
我只需要 运行
jupyter console --existing
在我所在的同一目录下 运行
jupyter notebook
周末我在 Jupyter notebook 中进行了一些长时间的处理 运行,但浏览器 window 在某个时候关闭了。根据 this answer, the process shouldn't have been canceled, but whatever output I would have gotten would be lost. This is okay, as I only need access to the resulting objects from the process. My goal is to connect to the running kernel in the console, and work from there. According to Jupyter's documentation,我应该可以用
做到这一点jupyter console --existing
但是在 运行 这并挂起一分钟后,我得到以下内容
Traceback (most recent call last):
File "/anaconda/envs/py35/lib/python3.5/site-packages/jupyter_console/ptshell.py", line 323, in init_kernel_info
reply = self.client.get_shell_msg(timeout=1)
File "/anaconda/envs/py35/lib/python3.5/site-packages/jupyter_client/client.py", line 77, in get_shell_msg
return self.shell_channel.get_msg(*args, **kwargs)
File "/anaconda/envs/py35/lib/python3.5/site-packages/jupyter_client/blocking/channels.py", line 57, in get_msg
raise Empty
queue.Empty
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "/anaconda/envs/py35/bin/jupyter-console", line 11, in <module>
sys.exit(main())
File "/anaconda/envs/py35/lib/python3.5/site-packages/jupyter_core/application.py", line 267, in launch_instance
return super(JupyterApp, cls).launch_instance(argv=argv, **kwargs)
File "/anaconda/envs/py35/lib/python3.5/site-packages/traitlets/config/application.py", line 657, in launch_instance
app.initialize(argv)
File "<decorator-gen-116>", line 2, in initialize
File "/anaconda/envs/py35/lib/python3.5/site-packages/traitlets/config/application.py", line 87, in catch_config_error
return method(app, *args, **kwargs)
File "/anaconda/envs/py35/lib/python3.5/site-packages/jupyter_console/app.py", line 141, in initialize
self.init_shell()
File "/anaconda/envs/py35/lib/python3.5/site-packages/jupyter_console/app.py", line 114, in init_shell
client=self.kernel_client,
File "/anaconda/envs/py35/lib/python3.5/site-packages/traitlets/config/configurable.py", line 412, in instance
inst = cls(*args, **kwargs)
File "/anaconda/envs/py35/lib/python3.5/site-packages/jupyter_console/ptshell.py", line 272, in __init__
self.init_kernel_info()
File "/anaconda/envs/py35/lib/python3.5/site-packages/jupyter_console/ptshell.py", line 326, in init_kernel_info
raise RuntimeError("Kernel didn't respond to kernel_info_request")
RuntimeError: Kernel didn't respond to kernel_info_request
发生这种情况是因为我的 运行 长进程仍在内核上 运行,还是可能存在其他问题?当上述过程完成后,我是否可以使用上述命令按预期连接?
解决方案*击鼓声*:
我只需要 运行
jupyter console --existing
在我所在的同一目录下 运行
jupyter notebook