Jupyter 解释器永久更改

Jupyter interpreter permanently changed

我正在玩一个新库,它在以下位置设置了一个新的 venv 和解释器 (python 3.8)。

import sys
sys.executable
'/Users/User/tensorflow_macos_venv/bin/python'

虽然当我激活 venv 时这很好,但一旦我停用它并再次 运行 Anaconda3 jupyter notebook,我仍然看到相同的解释器。有人可以帮助解释如何将其恢复为原始状态吗?我尝试转到“更改内核”选项 (as mentioned in this answer),但我只看到一个选项“python 3”。

澄清一下,在终端中它仍然显示默认解释器是正确的 -

$which python
$/Users/User/opt/anaconda3/bin/python

更重要的是,有没有一种方法可以通过笔记本选项(更改内核选项)让两者都可用

编辑:我使用的是 mac 而不是 Windows 或 linux。 编辑:看来我已经用新的 venv 解释器路径覆盖了 Python 3 内核的解释器路径。我已经在下面提到了解决此问题所遵循的步骤。

我花了一些时间研究并找到了解决问题并向笔记本添加多个内核的方法。我不确定这是否是最好的方法,但是,这可以帮助其他面临问题的人。

$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

In my case, it should have looked like below. However, the path for mine was incorrect. I changed it back to the path to my default system python as below and it fixed my first issue of getting back to the original interpreter -

{
 "argv": [
  "/Users/User/opt/anaconda3/bin/python",  #<------ fixed this
  "-m",
  "ipykernel_launcher",
  "-f",
  "{connection_file}"
 ],
 "display_name": "Python 3",
 "language": "python"
}

下一步是向 jupyter notebook 添加另一个解释器

如果您有另一个要添加到内核选择的解释器(菜单 > 内核 > 更改内核),那么您需要做的就是 -

  1. '/Users/User/Library/Jupyter/kernels'
  2. 中创建一个新文件夹
  3. 把上面的kernel.json复制进去
  4. 修改路径和显示名称

就我而言,我做了以下 -

{
 "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 个内核以在运行中切换。

我就是这样解决了上面的问题的。对更好的方法持开放态度,因为我相信会有。