Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Welcome To Ask or Share your Answers For Others

Categories

0 votes
481 views
in Technique[技术] by (71.8m points)

python - Jupyter Lab and Notebook Problem: Kernel Error

It appears that somehow one of my kernels is deleted. And perhaps that's why I am getting this error. How could I possibly fix it? Can I reinstall something (the kernel in the base environment perhaps)?

If no better option is available, I would try reinstalling anaconda altogether as a last resort according to: Default kernel in jupyter notebook (Python3) not working.

enter image description here

I have tried using the following:

  1. Installation of Jupyter Lab: requirements already satisfied
  2. Kernels don't show up when runnning "jupyter lab"
  3. UI says "No kernel" while I definitively have one
  4. Getting Kernel Error while running Jupyter Notebook in Python3
  5. https://ipython.readthedocs.io/en/latest/install/kernel_install.html
  6. https://medium.com/flatiron-engineering/recovering-from-a-jupyter-disaster-27401677aeeb

Current List of Kernels

jupyter kernelspec list

Output:

Available kernels:
  python3    C:Users
aysuAppDataRoamingjupyterkernelspython3
  vpython    C:ProgramDatajupyterkernelsvpython

But I must have another kernel (which I suppose somehow got deleted) associated with my base environment.

C:Users
aysuDocuments>conda env list
# conda environments:
#
base                  *  C:Program Files (x86)Microsoft Visual StudioSharedAnaconda3_64
astra_env                C:Program Files (x86)Microsoft Visual StudioSharedAnaconda3_64envsastra_env
bokeh_env                C:Program Files (x86)Microsoft Visual StudioSharedAnaconda3_64envsokeh_env
sound_env                C:Program Files (x86)Microsoft Visual StudioSharedAnaconda3_64envssound_env
tf_env                   C:Program Files (x86)Microsoft Visual StudioSharedAnaconda3_64envsf_env
                         C:Users
aysuAnaconda3
                         C:Users
aysuAnaconda3envspyforge
opencv_env               C:Users
aysuAppDataLocalcondacondaenvsopencv_env
test_env                 C:Users
aysuAppDataLocalcondacondaenvsest_env

Error

Traceback (most recent call last):
  File "C:Program Files (x86)Microsoft Visual StudioSharedAnaconda3_64libsite-packagesornadoweb.py", line 1699, in _execute
    result = await result
  File "C:Program Files (x86)Microsoft Visual StudioSharedAnaconda3_64libsite-packagesornadogen.py", line 742, in run
    yielded = self.gen.throw(*exc_info)  # type: ignore
  File "C:Program Files (x86)Microsoft Visual StudioSharedAnaconda3_64libsite-packages
otebookservicessessionshandlers.py", line 72, in post
    type=mtype))
  File "C:Program Files (x86)Microsoft Visual StudioSharedAnaconda3_64libsite-packagesornadogen.py", line 735, in run
    value = future.result()
  File "C:Program Files (x86)Microsoft Visual StudioSharedAnaconda3_64libsite-packagesornadogen.py", line 742, in run
    yielded = self.gen.throw(*exc_info)  # type: ignore
  File "C:Program Files (x86)Microsoft Visual StudioSharedAnaconda3_64libsite-packages
otebookservicessessionssessionmanager.py", line 88, in create_session
    kernel_id = yield self.start_kernel_for_session(session_id, path, name, type, kernel_name)
  File "C:Program Files (x86)Microsoft Visual StudioSharedAnaconda3_64libsite-packagesornadogen.py", line 735, in run
    value = future.result()
  File "C:Program Files (x86)Microsoft Visual StudioSharedAnaconda3_64libsite-packagesornadogen.py", line 742, in run
    yielded = self.gen.throw(*exc_info)  # type: ignore
  File "C:Program Files (x86)Microsoft Visual StudioSharedAnaconda3_64libsite-packages
otebookservicessessionssessionmanager.py", line 101, in start_kernel_for_session
    self.kernel_manager.start_kernel(path=kernel_path, kernel_name=kernel_name)
  File "C:Program Files (x86)Microsoft Visual StudioSharedAnaconda3_64libsite-packagesornadogen.py", line 735, in run
    value = future.result()
  File "C:Program Files (x86)Microsoft Visual StudioSharedAnaconda3_64libsite-packagesornadogen.py", line 209, in wrapper
    yielded = next(result)
  File "C:Program Files (x86)Microsoft Visual StudioSharedAnaconda3_64libsite-packages
otebookserviceskernelskernelmanager.py", line 168, in start_kernel
    super(MappingKernelManager, self).start_kernel(**kwargs)
  File "C:Users
aysuAppDataRoamingPythonPython36site-packagesjupyter_clientmultikernelmanager.py", line 110, in start_kernel
    km.start_kernel(**kwargs)
  File "C:Users
aysuAppDataRoamingPythonPython36site-packagesjupyter_clientmanager.py", line 240, in start_kernel
    self.write_connection_file()
  File "C:Users
aysuAppDataRoamingPythonPython36site-packagesjupyter_clientconnect.py", line 476, in write_connection_file
    kernel_name=self.kernel_name
  File "C:Users
aysuAppDataRoamingPythonPython36site-packagesjupyter_clientconnect.py", line 141, in write_connection_file
    with secure_write(fname) as f:
  File "C:Program Files (x86)Microsoft Visual StudioSharedAnaconda3_64libcontextlib.py", line 81, in __enter__
    return next(self.gen)
  File "C:Users
aysuAppDataRoamingPythonPython36site-packagesjupyter_corepaths.py", line 404, in secure_write
    win32_restrict_file_to_user(fname)
  File "C:Users
aysuAppDataRoamingPythonPython36site-packagesjupyter_corepaths.py", line 359, in win32_restrict_file_to_user
    import win32api
ImportError: DLL load failed: The specified procedure could not be found.

See Question&Answers more detail:os

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome To Ask or Share your Answers For Others

1 Reply

0 votes
by (71.8m points)

Solved the problem by editing the relevant kernelspec: kernel.json file after fresh installation of Anaconda.

Solution in Detail

As reported earlier, I found that I had two kernelspecs. (command: jupyter kernelspec list)

  1. python3: C:Users aysuAppDataRoamingjupyterkernelspython3
  2. vpython: C:ProgramDatajupyterkernelsvpython

The kernelspec is a .json file that maintains kernel-specifications for jupyter-notebook/lab to launch a certain kernel. Fortunately, the kernel vpython was functioning and that helped me narrow down the source of the problem located inside kernelpsec: python3. I had to correct the path to the python executable (python.exe) and that solved the issue.

I would like to mention that in this case the following two resources came handy. I got more clarity in where the problem could be, after I saw the typical-structure of the kernelspec document.

Note: However, since I cannot test this theory, I would ask anyone else in a similar problem, to first make a copy of the old kernel.json file and then update the path to python.exe file. If that resolves the kernel error, then reinstalling Anaconda altogether may not be necessary.

Long story short:

If your jupyter notebook/lab environment shows you kernel error, most likely the source of the problem is inside the kernelspec file: kernel.json and the path to python.exe is incorrect. This could be a more likely scenario, if the same kernel error persists even after fresh re-installation of anaconda/jupyter-notebook/lab.

For instance, in my case, the python3-kernelspec was located at:

"C:Users
aysuAppDataRoamingjupyterkernelspython3"

And the python.exe was located at:

"C:Users
aysuAnaconda3python.exe"

However, the path to the python-executable was wrong: it was still showing the path from the old installation. And post-anaconda-reinstallation, this path had changed. So, I had to update the kernelspec for python3 by editing kernel.json file.

# kernel.json file
{
 "argv": [
  "C:\Users\raysu\Anaconda3\python.exe",
  "-m",
  "ipykernel_launcher",
  "-f",
  "{connection_file}"
 ],
 "display_name": "Python 3",
 "language": "python"
}

If this does not solve your problem, please consult the following two documents. I wasted 4 days because of this. Hopefully, this answer would help out someone in future.

What came handy?

  1. https://jupyter-notebook.readthedocs.io/en/stable/troubleshooting.html
  2. https://jupyter-client.readthedocs.io/en/stable/kernels.html

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
OGeek|极客中国-欢迎来到极客的世界,一个免费开放的程序员编程交流平台!开放,进步,分享!让技术改变生活,让极客改变未来! Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Click Here to Ask a Question

...