Jupyter Notebook 中未显示 Anaconda (3-2021.11) 环境

Anaconda (3-2021.11) environment not showing up in Jupyter Notebook

我无法让我的 anaconda 环境显示在 jupyter notebook 中。我不确定当前的解决方案是否过时或者我做错了什么。我把行为弄清楚了,希望能更容易地识别问题。

我从 their website 为 Linux 安装 Anaconda3-2021.11:

$ sh ./Downloads/Anaconda3-2021.11-Linux-x86_64.sh
$ reboot
$ conda update conda -y
$ conda install nb_conda_kernels -y

我们看到以下 conda 环境:

$ conda env list

# conda environments:
#
base                  *  /home/user/anaconda3

我们可以看到 python 在哪里:

$ echo $CONDA_DEFAULT_ENV

base

$ which python

/home/user/anaconda3/bin/python

$ python --version

Python 3.9.7

我用 jupyter 和 nb_conda_kernels 观察到以下内容:

$ jupyter kernelspec list

[ListKernelSpecs] WARNING | Config option `kernel_spec_manager_class` not recognized by `ListKernelSpecs`.
Available kernels:
  python3    /home/user/anaconda3/share/jupyter/kernels/python3

$ python -m nb_conda_kernels list

[ListKernelSpecs] WARNING | Config option `kernel_spec_manager_class` not recognized by `ListKernelSpecs`.
[ListKernelSpecs] [nb_conda_kernels] enabled, 1 kernels found
Available kernels:
  python3          /home/user/anaconda3/share/jupyter/kernels/python3
  conda-root-py    /home/user/anaconda3/share/jupyter/kernels/python3

如果我尝试创建这样的环境:

conda create -n test_env python=3.8

它将出现在 conda 中:

$ conda env list

# conda environments:
#
base                  *  /home/user/anaconda3
test_env                 /home/user/anaconda3/envs/test_env

而且我们可以看到 test_env 的 python 在哪里:

$ conda activate test_env
$ echo $CONDA_DEFAULT_ENV

test_env

$ which python

/home/user/anaconda3/envs/test_env/bin/python

$ python --version

Python 3.8.13

但是,当处于 base 时,jupyter kernelspec listpython -m nb_conda_kernels list 输出不会改变。

如果我尝试手动执行:

$ python -m ipykernel install --user --name test_env --display-name "Python (test_env)"

Installed kernelspec test_env in /home/user/.local/share/jupyter/kernels/test_env

它可能会出现在 jupyter kernelspec 和 nb_conda_kernels:

$ jupyter kernelspec list

[ListKernelSpecs] WARNING | Config option `kernel_spec_manager_class` not recognized by `ListKernelSpecs`.
Available kernels:
  test_env    /home/user/.local/share/jupyter/kernels/test_env
  python3     /home/user/anaconda3/share/jupyter/kernels/python3

$ python -m nb_conda_kernels list

[ListKernelSpecs] WARNING | Config option `kernel_spec_manager_class` not recognized by `ListKernelSpecs`.
[ListKernelSpecs] [nb_conda_kernels] enabled, 1 kernels found
Available kernels:
  test_env         /home/deepology/.local/share/jupyter/kernels/test_env
  python3          /home/user/anaconda3/share/jupyter/kernels/python3
  conda-root-py    /home/user/anaconda3/share/jupyter/kernels/python3

但如果您实际启动 jupyter notebook 并创建一个 test_env notebook,那么我们会观察到

笔记本脚本输入

import sys
print(sys.executable)

笔记本脚本输出

/home/user/anaconda3/bin/python
3.9.7 (default, Sep 16 2021, 13:09:58) 
[GCC 7.5.0]

如果我重新启动,什么都不会改变。

我做错了什么?

您需要在激活的test_env中执行此操作。

python -m ipykernel install --user --name test_env --display-name "Python (test_env)"