首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >木星笔记本Python内核- FileNotFoundError:[Errno 2]没有这样的文件或目录python3

木星笔记本Python内核- FileNotFoundError:[Errno 2]没有这样的文件或目录python3
EN

Stack Overflow用户
提问于 2020-12-15 05:32:37
回答 1查看 4.3K关注 0票数 3

问题

在木星笔记本中,如何解决Python解释器找不到的问题。

环境

  • Ubuntu 18.04
  • 带有Python3.7的Anaconda环境

问题

启动一个jupyter笔记本并创建一个带有Python 3内核的笔记本,并得到错误信息。nlp_in_tensorflow是一个已经删除的conda环境。

代码语言:javascript
复制
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'
EN

回答 1

Stack Overflow用户

发布于 2020-12-15 05:32:37

原因

Python3内核的kernel.json文件指向已删除的环境。

代码语言:javascript
复制
$ 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的内核规范中指定的,用户可以根据自己的需求调整它们。例如,下面是我的系统中的内核列表:

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/65300509

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档