【问题标题】:Failed to start the kernel on jupyter notebook在 jupyter notebook 上启动内核失败
【发布时间】:2019-01-26 19:21:41
【问题描述】:

我通过 Homebrew 安装了 python 版本 3.6.5_13.7.0
jupyter 需要 python3.6 才能启动。如果我切换到 python3.7,它将无法启动。

启动后,内核启动失败。给出这个错误:

Traceback (most recent call last):
File "/usr/local/Cellar/jupyter/1.0.0_4/libexec/vendor/lib/python3.6/site-packages/tornado/web.py", line 1543, in _execute
result = yield result
File "/usr/local/Cellar/jupyter/1.0.0_4/libexec/vendor/lib/python3.6/site-packages/tornado/gen.py", line 1099, in run
value = future.result()
File "/usr/local/Cellar/jupyter/1.0.0_4/libexec/vendor/lib/python3.6/site-packages/tornado/gen.py", line 1107, in run
yielded = self.gen.throw(*exc_info)
File "/usr/local/Cellar/jupyter/1.0.0_4/libexec/lib/python3.6/site-packages/notebook/services/sessions/handlers.py", line 73, in post
type=mtype))
File "/usr/local/Cellar/jupyter/1.0.0_4/libexec/vendor/lib/python3.6/site-packages/tornado/gen.py", line 1099, in run
value = future.result()
File "/usr/local/Cellar/jupyter/1.0.0_4/libexec/vendor/lib/python3.6/site-packages/tornado/gen.py", line 1107, in run
yielded = self.gen.throw(*exc_info)
File "/usr/local/Cellar/jupyter/1.0.0_4/libexec/lib/python3.6/site-packages/notebook/services/sessions/sessionmanager.py", line 79, in create_session
kernel_id = yield self.start_kernel_for_session(session_id, path, name, type, kernel_name)
File "/usr/local/Cellar/jupyter/1.0.0_4/libexec/vendor/lib/python3.6/site-packages/tornado/gen.py", line 1099, in run
value = future.result()
File "/usr/local/Cellar/jupyter/1.0.0_4/libexec/vendor/lib/python3.6/site-packages/tornado/gen.py", line 1107, in run
yielded = self.gen.throw(*exc_info)
File "/usr/local/Cellar/jupyter/1.0.0_4/libexec/lib/python3.6/site-packages/notebook/services/sessions/sessionmanager.py", line 92, in start_kernel_for_session
self.kernel_manager.start_kernel(path=kernel_path, kernel_name=kernel_name)
File "/usr/local/Cellar/jupyter/1.0.0_4/libexec/vendor/lib/python3.6/site-packages/tornado/gen.py", line 1099, in run
value = future.result()
File "/usr/local/Cellar/jupyter/1.0.0_4/libexec/vendor/lib/python3.6/site-packages/tornado/gen.py", line 315, in wrapper
yielded = next(result)
File "/usr/local/Cellar/jupyter/1.0.0_4/libexec/lib/python3.6/site-packages/notebook/services/kernels/kernelmanager.py", line 148, in start_kernel
super(MappingKernelManager, self).start_kernel(**kwargs)
File "/usr/local/Cellar/jupyter/1.0.0_4/libexec/lib/python3.6/site-packages/jupyter_client/multikernelmanager.py", line 110, in start_kernel
km.start_kernel(**kwargs)
File "/usr/local/Cellar/jupyter/1.0.0_4/libexec/lib/python3.6/site-packages/jupyter_client/manager.py", line 259, in start_kernel
**kw)
File "/usr/local/Cellar/jupyter/1.0.0_4/libexec/lib/python3.6/site-packages/jupyter_client/manager.py", line 204, in _launch_kernel
return launch_kernel(kernel_cmd, **kw)
File "/usr/local/Cellar/jupyter/1.0.0_4/libexec/lib/python3.6/site-packages/jupyter_client/launcher.py", line 128, in launch_kernel
proc = Popen(cmd, **kwargs)
File "/usr/local/Cellar/python/3.6.5_1/Frameworks/Python.framework/Versions/3.6/lib/python3.6/subprocess.py", line 709, in __init__
restore_signals, start_new_session)
File "/usr/local/Cellar/python/3.6.5_1/Frameworks/Python.framework/Versions/3.6/lib/python3.6/subprocess.py", line 1344, in _execute_child
raise child_exception_type(errno_num, err_msg, err_filename)
FileNotFoundError: [Errno 2] No such file or directory: '/usr/local/opt/python/bin/python3.7': '/usr/local/opt/python/bin/python3.7'

据我了解,内核正在寻找 python3.7。我的内核列表只有 python3

$jupyter kernelspec list  
Available kernels:  
python3    /usr/local/etc/jupyter/kernels/python3  

我查看了this link on github,但没有帮助。如何让 jupyter 和内核在同一个 python 版本上运行?

【问题讨论】:

  • 在 jupyter python3.7 -m ipykernel install 上安装内核。你确定你所有的python3都是用自制软件安装的吗?
  • @Erwan,是的,我所有的 python3 都是通过 Homebrew 安装的
  • 检查是否在 python 3.7 控制台中通过 help("modules") 为 python 3.7 安装了 jupyter
  • @Alex,我在模块列表中没有看到 jupyter。
  • @nac001 使用pip3 install jupyter 安装它。 (需要使用python 3.7的pip

标签: python kernel jupyter-notebook


【解决方案1】:

查看内核规范:

$jupyter kernelspec list

这将向您显示可用的内核。在这种情况下:

python3    /usr/local/etc/jupyter/kernels/python3  

打开该目录下的kernel.json文件,在argv键中指定你希望内核使用的python路径。

【讨论】:

  • 我面临同样的错误,我已经运行了您在问题中提到的以下命令,并返回给我python3 C:\Users\AHMED\anaconda3\envs\iris_1\share\jupyter\kernels\python3。现在接下来我不明白如何指定python的路径..
  • @AhmedYasin,您提到的路径中有一个kernel.json 文件。您必须在那里更改内核路径。
  • 谢谢。我的kernel.json 有一个环境中python 可执行文件的路径,而不是系统范围的路径。这解决了它。
【解决方案2】:

更新 jupyter notebook 为我解决了这个问题。 但请记住,使用命令行更新它。不是 Anaconda 导航器

pip install -U jupyter

【讨论】:

    【解决方案3】:

    第 2 步命令:-“conda activate(您的 env 文件夹的位置)” 第 3 步命令:-“python -m ipykernel install --user”

    作品

    【讨论】:

    • 请提供完整的过程,因为它不包括第 1 步。解释其工作原理也将进一步帮助 OP。
    • 很抱歉给您带来不便。第 1 步将启动终端...实际上我从 Claudio_pena 的“discourse.jupyter.org/t/…”中找到了这个解决方案,并认为它对其他人有帮助..谢谢
    【解决方案4】:

    如果有人在 Anaconda 中运行 Jupyter Notebook 并收到相同的错误:

    我通过在命令提示符(不是 anaconda 提示符)中使用 pip 安装 Jupyter 找到了一种解决方法:

    $pip install jupyter
    

    然后使用已知方式启动 Jupyter

    $cd 'DirectoryofyourNotebook'
    $jupyter notebook
    

    【讨论】:

      【解决方案5】:

      我遇到了同样的问题 - 尝试了以上所有方法都没有成功。

      背景:在这台机器上使用 Windows 已经有几年了。我将这台机器用作“需要时随时随地使用代码”的笔记本电脑,并且在安装/升级 python 版本或库或环境时并没有非常小心或始终如一。

      对我的修复 - 不知何故,包含 f2py.exe(Numpy - 在其之上构建 Pandas)的文件夹不在路径中,并且位于以“\”结尾的隐藏文件夹中脚本”。 Python 本身在环境变量中很好。它们位于非常不同的文件夹中 - 而通常它们应该位于文件夹树中的紧密分支中。添加以“\Scripts”结尾且环境变量中包含 f2py.exe 的文件夹的完整路径为我解决了内核问题。

      【讨论】:

      猜你喜欢
      • 2018-06-29
      • 2023-01-13
      • 1970-01-01
      • 2021-04-21
      • 2022-11-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-02-13
      相关资源
      最近更新 更多