如何在IPython/Jupyter notebook v4.0中删除/刷新可用内核?

59

我最近停止使用 macports,所以我为各种 IPython 内核拥有的 kernel.json 文件已经过时。我已经将 ~/.ipython 重命名并删除了 ~/.jupyter,但是启动的内核无法启动,并出现“文件未找到”的错误。

更具有指示性的是,当我运行 jupyter-kernelspec list 时,它仍然列出我设置的所有旧内核。它从哪里获取这些信息,我需要做什么来刷新/删除它的缓存?

7个回答

39

在暴力搜索之后,Jupyter会将OS X的内核信息存储在/Users/${USER}/Library/Jupyter/kernels中。该列表是从我的.ipython/kernels列表复制过来的,因此重命名它没有任何区别。

移除/Users/${USER}/Library/Jupyter/kernels可以解决该问题。

这是我正在寻找的参考文献:http://jupyter-client.readthedocs.org/en/latest/kernels.html#kernelspecs


2
感谢分享。在遇到一些错误后,我一直在编辑 ~/.ipython 中的内核文件,但似乎没有什么帮助,直到看到你的文章才知道它们实际上是从 ~/Library/Jupyter 加载的。为什么这个目录会被创建在 ~/.ipython 下呢? - Chris
推荐!即使完全重新安装Anaconda、卸载Brew、R和RStudio都无法解决问题,这种方法也可以成功安装R内核。 - scottlittle

28

截至今日:

jupyter kernelspec list

给你一个列表(名称和路径)。然后选择名称并卸载它:

jupyter kernelspec uninstall myKernalName

23

如果其他人也遇到这个问题,Linux也会出现这种情况。检查以下目录的内容: ~/.local/share/jupyter/kernels/


4
我可以确认,如果你从指定的位置删除内容并重新启动笔记本电脑,它会起作用。 - user1443317
1
除了删除之外,我还需要运行以下命令: ENVS=$(conda env list | grep '^\w' | cut -d' ' -f1);for env in $ENVS; do conda activate $env; python -m ipykernel install --user --name $env; echo "$env"; conda deactivate; done - user3521099

20

运行:

jupyter --paths

将列出其所有运行所需的可能位置:内核,扩展,pidfiles等。


它不在macOS上列出内核路径。 - panc

12

在jbcoe的答案基础上,如果你使用的是macOS,那么你应该期望内核被安装在以下两个位置:

/System/Library/Kernels

/Library/Kernels

/Users/${USER}/Library/Jupyter/kernels

并且

/usr/local/share/jupyter/kernels

10

您可以在终端中运行jupyter kernelspec list或在笔记本电脑单元格中运行!jupyter kernelspec list以查看可用内核和位置列表。


我同时安装了Python2和Python3,但是在Jupyter中上述命令没有显示Python3。 - DJ_Stuffy_K
听起来你需要安装Python 3的Jupyter,请参考https://dev59.com/fV4b5IYBdhLWcg3wqDSj - jbcoe
在我的笔记本电脑上,当我点击“更改内核”时,我看到有五个以上的内核。但是,“jupyter kernelspec list”命令只列出一个内核。 - Shailen

8
为了完整列出,在Windows操作系统(至少Win 7)中,它们分别是:
系统级: C:\ProgramData\jupyter\kernels 用户级: C:\Users\[用户名]\AppData\Roaming\jupyter\kernels 在kernels文件夹下,每个env(环境)都有一个文件夹。每个子文件夹内的kernel.json可编辑以更改显示名称或其他参数。

1
  1. 导航到%appdata%
  2. 导航到\jupyter\kernels
- shahar_m

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接