一. 更换 kernel 的 Python 位置
首先找到 Jupyter Notebook 内核指定的 Python 环境位置, 然后修改相应的指定 Python 位置即可.
利用 jupyter kernelspec list
查看所有可用的 kernels
dell@dell-Tower:~$ jupyter kernelspec list
Available kernels:
python3 /opt/anaconda3/share/jupyter/kernels/python3
接着
dell@dell-Tower:~$ cd /opt/anaconda3/share/jupyter/kernels/python3
dell@dell-Tower:/opt/anaconda3/share/jupyter/kernels/python3$ ll
total 20
drwxr-xr-x 2 root root 4096 4月 11 15:53 ./
drwxr-xr-x 3 root root 4096 4月 11 15:53 ../
-rw-rw-r-- 1 root root 212 4月 11 15:53 kernel.json
-rw-rw-r-- 2 root root 1084 10月 6 2021 logo-32x32.png
-rw-rw-r-- 2 root root 2180 10月 6 2021 logo-64x64.png
编辑这个 kernel.json
可以看到里面的内容
{
"argv": [
"/opt/anaconda3/bin/python",
"-m",
"ipykernel_launcher",
"-f",
"{connection_file}"
],
"display_name": "Python 3 (ipykernel)",
"language": "python",
"metadata": {
"debugger": true
}
}
里面的 "/opt/anaconda3/bin/python"
可以进行更改 Python 的位置,
以及 "display_name": "Python 3 (ipykernel)"
表示所显示的名称为 Python 3 (ipykernel)
也是可以进行编辑的.
二. 创建新的 kernels
1. 如何创建
conda activate env-name
pip install ipykernel
python -m ipykernel install --user --name env-name --display-name "name-display"
其中第一个 env-name
是你虚拟环境的名称, name-display
是在 jupyter notebook 中展示的名称.
可以 conda deactivate env-name
回到 base
环境中, 然后输入 Jupyter notebook
启动就可以了.
同样的, 也可以利用上面的方法对新创建的 kernel 找到其位置并进行编辑.
2. 上述命令的一点说明
这里需要说明一下 --user
这个选项, 普通账户在使用 anaconda 新建虚拟环境时, 产生的相关文件都在本账户的家目录下, 即 /home/username
. 但是在生成 ipykernel 的配置文件时, 所以在没有 --user
选项时, 即 python -m ipykernel install --name env-name --display-name "name-display"
命令生成配置文件的路径为 /usr/local/share/jupyter
, 显然普通账户没有权限写入, 因而报错
[Errno 13] Permission denied: '/usr/local/share/jupyter'
这时如果直接先 sudo -i
取得 root 权限后, 此时的 虚拟环境
就直接切换到 base
下了, 当再运行 python -m ipykernel install --name env-name --display-name "name-display"
命令时, 创建的其实是 base
下的 kernel, 这显然不是我们想要的.
所以一般普通用户 (即非 root 用户), 创建新的 kernel 时一定要在命令中添加 --user
选项.