问题
在木星笔记本中,如何解决Python解释器找不到的问题。
环境
问题
启动一个jupyter笔记本并创建一个带有Python 3内核的笔记本,并得到错误信息。nlp_in_tensorflow是一个已经删除的conda环境。
Traceback (most recent call last):
File "/home/user/conda/envs/cs231n/lib/python3.7/site-packages/tornado/web.py", line 1704, in _execute
result = await result
File "/home/user/conda/envs/cs231n/lib/python3.7/site-packages/tornado/gen.py", line 769, in run
yielded = self.gen.throw(*exc_info) # type: ignore
File "/home/user/conda/envs/cs231n/lib/python3.7/site-packages/notebook/services/sessions/handlers.py", line 72, in post
type=mtype))
File "/home/user/conda/envs/cs231n/lib/python3.7/site-packages/tornado/gen.py", line 762, in run
value = future.result()
File "/home/user/conda/envs/cs231n/lib/python3.7/site-packages/tornado/gen.py", line 769, in run
yielded = self.gen.throw(*exc_info) # type: ignore
File "/home/user/conda/envs/cs231n/lib/python3.7/site-packages/notebook/services/sessions/sessionmanager.py", line 88, in create_session
kernel_id = yield self.start_kernel_for_session(session_id, path, name, type, kernel_name)
File "/home/user/conda/envs/cs231n/lib/python3.7/site-packages/tornado/gen.py", line 762, in run
value = future.result()
File "/home/user/conda/envs/cs231n/lib/python3.7/site-packages/tornado/gen.py", line 769, in run
yielded = self.gen.throw(*exc_info) # type: ignore
File "/home/user/conda/envs/cs231n/lib/python3.7/site-packages/notebook/services/sessions/sessionmanager.py", line 101, in start_kernel_for_session
self.kernel_manager.start_kernel(path=kernel_path, kernel_name=kernel_name)
File "/home/user/conda/envs/cs231n/lib/python3.7/site-packages/tornado/gen.py", line 762, in run
value = future.result()
File "/home/user/conda/envs/cs231n/lib/python3.7/site-packages/notebook/services/kernels/kernelmanager.py", line 176, in start_kernel
kernel_id = await maybe_future(self.pinned_superclass.start_kernel(self, **kwargs))
File "/home/user/conda/envs/cs231n/lib/python3.7/site-packages/jupyter_client/multikernelmanager.py", line 185, in start_kernel
km.start_kernel(**kwargs)
File "/home/user/conda/envs/cs231n/lib/python3.7/site-packages/jupyter_client/manager.py", line 313, in start_kernel
self.kernel = self._launch_kernel(kernel_cmd, **kw)
File "/home/user/conda/envs/cs231n/lib/python3.7/site-packages/jupyter_client/manager.py", line 220, in _launch_kernel
return launch_kernel(kernel_cmd, **kw)
File "/home/user/conda/envs/cs231n/lib/python3.7/site-packages/jupyter_client/launcher.py", line 131, in launch_kernel
proc = Popen(cmd, **kwargs)
File "/home/user/conda/envs/cs231n/lib/python3.7/subprocess.py", line 800, in __init__
restore_signals, start_new_session)
File "/home/user/conda/envs/cs231n/lib/python3.7/subprocess.py", line 1551, in _execute_child
raise child_exception_type(errno_num, err_msg, err_filename)
FileNotFoundError: [Errno 2] No such file or directory: '/home/user/conda/envs/nlp_in_tensorflow/bin/python3': '/home/user/conda/envs/nlp_in_tensorflow/bin/python3'发布于 2020-12-15 05:32:37
原因
Python3内核的kernel.json文件指向已删除的环境。
$ jupyter kernelspec list
Available kernels:
python3 /home/oonisim/.local/share/jupyter/kernels/python3
$ cat ~/.local/share/jupyter/kernels/python3/kernel.json
{
"argv": [
"/home/user/conda/envs/nlp_in_tensorflow/bin/python3", <----- Referring to the deleted environment
"-m",
"ipykernel_launcher",
"-f",
"{connection_file}"
],
"display_name": "Python 3",
"language": "python"
}资源
多个python环境,无论是基于Anaconda还是Python虚拟环境,通常都是报告问题的根源。在许多情况下,这些问题源于在一个环境中运行的笔记本服务器,而内核和/或其资源则来自于另一个环境。 需要检查的另一件事是运行jupyter kernelspec list所标识的位于上述内核规范目录中的kernel.json文件。该文件将包含argv节,其中包含启动内核时要运行的实际命令。通常情况下,当重新安装python环境时,以前的kernel.json将从旧的或不存在的位置引用python可执行文件。因此,当遇到内核启动问题时,验证argv节以确保所有文件引用都存在并且是适当的,这总是一个好主意。
修复
移除~/.local/share/jupyter/kernels/python3/kernel.json.
相关问题
木星被设置为能够为代码使用范围广泛的“内核”或执行引擎。可以是Python 2,Python 3,R,Julia,Ruby.有几十种可能的内核可供使用。但是为了实现这一点,木星需要知道在哪里寻找相关的可执行文件:也就是说,它需要知道python所处的路径。 这些路径是在jupyter的内核规范中指定的,用户可以根据自己的需求调整它们。例如,下面是我的系统中的内核列表:
https://stackoverflow.com/questions/65300509
复制相似问题