Skip to content

在jupyter中切换/使用conda虚拟环境

0 缘起

是这样的, 很多时候, 我们开发需要使用多个虚拟环境, 因此通过conda创建了多个虚拟环境, 那有时, 我们在使用jupyter notebook的时候需要使用其中的某个环境, 但jupyter默认的还是conda的base环境. 这就有点麻烦了.

1 简而言之

简而言之, 在base环境下使用下面的命令, 即可在jupyter中注册 Conda 环境的内核, 而无需手动执行繁琐的步骤即可让我们能够在 jupyter 中方便地切换和使用不同的 Conda 虚拟环境。

conda install nb_conda_kernels

2 言之详细

jupyter实际是在一个名为 kernel 的单独进程中运行用户的代码。kernel可以是不同的python安装在不同的conda或者是虚拟环境中。

那实际上, 在每个虚拟环境中, 只要包含kernel内核就可以了, 内核是运行代码的封装python的组件, jupyter的一些其他组件可以看作是一个编辑器或IDE. 因为有以下一些方式, 在conda的虚拟环境实现都可以在jupyter中运行.

1 在conda环境中直接安装jupyter

最直观, 简单的执行方式.

conda create -n conda_env_1

# 激活conda_env_1环境, 执行后, 环境会处于conda_env_1中
conda activate conda_env_1

conda install jupyter

jupyter notebook

这种方法就是为每个虚拟环境都安装jupyter, 我以前也是这样做的, 可行, 但是实际上确实会很笨重。

2 为conda环境安装内核

上面这种方式, 每个虚拟环境都安装jupyter, 会有些笨重, 实际上, 只需要安装安装内核就可以了.

conda create -n conda_env_2

# 激活conda_env_2环境, 执行后, 环境会处于conda_env_2中
conda activate conda_env_2

conda install ipykernel

ipython kernel install --user --name=conda_env_2

jupyter notebook

这样, 只有Python内核, 会在conda环境中运行, 系统中的jupyter没有被安装在conda环境中.

其中:

conda install ipykernel 是确保在激活的虚拟环境中安装了 ipykernel 包,以便能够将环境添加到 jupyter 中.

ipython kernel install 将会在 jupyter 中添加一个 kernel,使其能够识别并使用我们的 conda 虚拟环境。

这种也还是可以的, 但是我们每次新建一个虚拟环境后, 都需要执行一次这段代码. 也还是有点麻烦的.

3 使用nb_conda_kernels添加所有环境

nb_conda_kernels 是一个 jupyter Notebook 的插件,用于改进jupyter中conda环境的支持, 它的主要功能是自动将 conda 环境中已安装的内核(kernels)添加到 jupyter 中,nb_conda_kernels 提供了一个命令行工具,该工具可以自动在 jupyter 中注册 Conda 环境的内核,而无需手动执行繁琐的步, 从而使我们能够在jupyter中方便地切换和使用不同的 Conda 虚拟环境。

因此在基础环境下, 执行下面的命令, 完成nb_conda_kernels的安装.

conda install nb_conda_kernels

这样, 我们在启动jupyter notebook后, 就会显示所有的conda虚拟环境, 可以直接切换, 如下:

3 关于

欢迎关注我的微信公众号