我花了一些时间研究并找到了一种方法来解决这个问题并将多个内核添加到笔记本中。我不确定这是否是最好的方法,但是,这可以帮助其他面临问题的人。
$which python
$/Users/User/opt/anaconda3/bin/python
上面的命令显示了系统的默认解释器,但是,Jupyter notebook 从它在运行时读取的connection file 中获取其选择的解释器。它可以在这里找到,但文件本身并不重要 -
from jupyter_client import find_connection_file
find_connection_file()
'/Users/User/Library/Jupyter/runtime/kernel-b1fa5520-5ae5-431a-8768-4ab4b755829f.json'
重要的是位置,因为此连接文件引用了可用的kernel.json 文件,这些文件实际上存储了有关可用于 jupyter notebook 的解释器的详细信息。
此位置与 - '/Users/User/Library/Jupyter/kernels' 位于同一路径下
在这里,您会为每个可用的解释器找到一个文件夹(默认情况下只有一个文件夹)。在文件夹(通常称为 python3)内,您会找到 kernel.json
就我而言,它应该如下所示。但是,我的路径不正确。我将其更改回默认系统 python 的路径,如下所示,它解决了我返回原始解释器的第一个问题-
{
"argv": [
"/Users/User/opt/anaconda3/bin/python", #<------ fixed this
"-m",
"ipykernel_launcher",
"-f",
"{connection_file}"
],
"display_name": "Python 3",
"language": "python"
}
接下来是向 jupyter notebook 添加另一个解释器
如果您有另一个解释器要添加到内核选择中(菜单 > 内核 > 更改内核),那么您需要做的就是 -
- 在
'/Users/User/Library/Jupyter/kernels' 中创建一个新文件夹
- 把上面的
kernel.json复制进去
- 修改路径和显示名称
就我而言,我做了以下 -
{
"argv": [
"/Users/User/tensorflow_macos_venv/bin/python", #<---- changed this
"-m",
"ipykernel_launcher",
"-f",
"{connection_file}"
],
"display_name": "tf_mac", #<---- changed this
"language": "python"
}
完成后,您可以使用 -
检查可用的内核
!jupyter kernelspec list
Available kernels:
python3 /Users/User/Library/Jupyter/kernels/python3
tf_mac /Users/User/Library/Jupyter/kernels/tf_mac
这意味着现在您可以进入 jupyter notebook 菜单 Kernels > Change Kernels 并找到上述 2 个内核在运行中进行切换。
这就是我解决上述问题的方法。接受更好的方法,因为我相信会有。