Conda多环境中配置不同的Jupyter Notebook内核
Ray Cheng 英砖生

1. 前言

在使用conda过程中,为了保持项目的整洁性和避免不同项目之间的依赖冲突,我们经常需要使用虚拟环境。同时,为了能够在Jupyter Notebook中选择合适的运行环境(即内核),我们需要进行一些额外的配置步骤来确保每个虚拟环境都能被正确识别并使用。

2. 安装

首先需要创建新环境,并安装ipykernel库到base环境与新环境。

2.1 创建虚拟环境

创建一个名为demo的conda虚拟环境,如下:

image

2.2 安装ipykernel

同时在base环境和虚拟环境中安装ipykernel

image

3. 配置与使用

如果在vscode中使用jupyter notebook,那不需要配置这一步,直接就可以使用了。

其实vscode很方便,甚至不需要安装ipykernel这一步,在vscode中使用notebook时,如果选择了一个没有安装ipykernel的环境,vscode会自动提示安装。

image

如果需要在网页端使用,则需要进行以下配置,将新的conda环境配置到jupyter的kernel中去,才能进行切换内核使用。

1
python -m ipykernel install --user  --name demo --display-name "demo-kernel"

--name 后是虚拟环境名称
--display-name后是jupyter notebook中显示的kernel名称。

配置完毕后,可以在jupyter notebook网页端使用。

image

4. 删除

删除时,不仅需要删除虚拟环境,同时需要使用相关命令删除该环境中的kernel。

  1. 使用以下命令删除conda remove -n env_name --all删除虚拟环境。

  2. 使用jupyter kernelspec list查看已配置内核,然后使用jupyter kernelspec remove env_name删除对应的内核

image

如果仅删除虚拟环境,配置的jupyter kernel仍然存在。不过在vscode中,只删除虚拟环境,对应的kernel选项也会消失,无法选择。但是在jupyter notebook网页端中,只删除虚拟环境,对应的内核仍然会显示,甚至仍然可以使用。

但是,尽管只删除虚拟环境后,jupyter notebook中的内核仍然会显示,甚至可以使用,但是此时使用的实际上是base的环境。

image image

通过上图可以看出,已经删除了的demo环境,单独存在的demo-kernel实际上使用的base的环境。