2.jupyter切换使用conda虚拟环境的最佳方法
服务器上配置有多个 conda 虚拟环境,在使用jupyter notebook时需要使用其中的一个环境,但是其默认是使用 base 环境。
我们该怎么切换环境呢。
Jupyter 在一个名为 kernel 的单独进程中运行用户的代码。kernel 可以是不同的 Python 安装在不同的 conda 环境或虚拟环境,甚至可以是不同语言(例如 Julia 或 R)的解释器。
简而言之,如何使用 conda 环境和 Jupyter 有三种选择:
- 1.在 conda 环境中运行 Jupyter 服务器和内核
- 2 为 conda 环境创建特殊内核
- 3 使用 nb_conda_kernels 添加所有环境
1 和 2操作复杂,第一种方法要为每个conda环境都要装jupyter;第二种方法其实也挺不错的。有个缺点是,你新建一个环境,就要重复操作一次。
方法1:
conda create -n my-conda-env # creates new virtual env
conda activate my-conda-env # activate environment in terminal
conda install jupyter # install jupyter + notebook
jupyter notebook # start server + kernel
方法2:
conda create -n my-conda-env # creates new virtual env
conda activate my-conda-env # activate environment in terminal
conda install ipykernel # install Python kernel in new conda env
ipython kernel install --user --name=my-conda-env-kernel # configure Jupyter to use Python kernel
jupyter notebook # run jupyter from system
方法3(推荐):
而这个方法就是一键添加所有 conda 环境,且不妙哉!
1. 激活项目环境并安装 IPython 内核
conda activate my-conda-env # 激活名为 my-conda-env 的 Conda 环境,这是你项目的主环境
conda install ipykernel # 在该环境中安装 ipykernel,它允许 Jupyter 连接到这个环境的 Python 解释器
conda deactivate # 退出当前环境,回到基础环境或之前的环境
作用:将项目环境注册为 Jupyter 可用的内核,以便在 Notebook 中选择该环境的 Python。
2. 在基础环境中安装 nb_conda_kernels 并启动 Jupyter
conda activate base # 激活 Conda 的基础环境(也可以是其他已安装 Jupyter 的环境)
conda install nb_conda_kernels # 安装 nb_conda_kernels 插件,它会自动识别所有 Conda 环境并添加到 Jupyter 的内核列表中
jupyter notebook # 启动 Jupyter Notebook 服务器,此时可以在浏览器中选择不同环境的内核
作用:在 Jupyter 中添加对所有 Conda 环境的支持,使你能够在同一个 Notebook 界面中切换不同环境的 Python 内核。
工作原理
- ipykernel:每个 Conda 环境需要安装
ipykernel
才能作为 Jupyter 内核被识别。 - nb_conda_kernels:在 Jupyter 所在环境(通常是
base
)中安装该插件后,它会自动扫描所有 Conda 环境,并将已安装ipykernel
的环境添加到 Jupyter 的内核选择菜单中。 - 内核切换:启动 Jupyter 后,在 Notebook 的顶部菜单中选择
Kernel → Change kernel
,即可切换到不同 Conda 环境的 Python。