问题
Over the weekend I had some long processes running in a Jupyter notebook, but the browser window was closed at some point. According to 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, I should be able to do this with
jupyter console --existing
But after running this and hanging for a minute I get the following
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
Is this occurring because my long-running process is still running on the kernel, or could there be an other issue? Should I be able to connect as expected using the above command when said process is complete?
回答1:
The solution *drumroll*:
I simply needed to run
jupyter console --existing
in the same directory in which I ran
jupyter notebook
来源:https://stackoverflow.com/questions/59457073/connecting-to-a-running-jupyter-kernel-with-a-currently-running-process