Jupyter Conda异常:调用GET /api/kernelspecs出现双默认环境问题
看起来你遇到的问题是Jupyter的conda相关扩展误识别了一个不存在的环境,导致获取包列表时出错。下面是几个针对性的排查和修复步骤:
1. 检查并修复jupyter_conda扩展配置
报错里的EnvironmentLocationNotFound: Not a conda environment: /opt/conda/envs/conda,大概率是jupyter_conda扩展的配置里硬编码了这个不存在的环境路径。
先找到你的Jupyter配置目录,执行命令:
jupyter --config-dir输出一般是
~/.jupyter这类路径进入这个目录,查找
jupyter_conda_config.json或类似配置文件,打开后看看有没有指向/opt/conda/envs/conda的条目。如果有,直接删除这条错误配置;要是不确定怎么改,干脆删掉整个配置文件,让扩展恢复默认设置。如果找不到配置文件,也可以直接重装扩展试试:
conda remove jupyter_conda conda install -c conda-forge jupyter_conda装完重启Jupyter Lab/Notebook,看看报错是否消失。
2. 验证Conda环境的基础信息
虽说你只有root环境,但还是确认下conda的环境路径是否正确:
执行命令查看当前conda环境的核心信息:
conda info重点看
active environment和base environment的路径,确保没有指向/opt/conda/envs/conda的内容。再检查环境变量是否异常:
echo $CONDA_DEFAULT_ENV echo $CONDA_PREFIX这两个变量应该指向你的root环境路径(比如
/opt/conda),如果显示的是错误的/opt/conda/envs/conda,那得修改你的shell配置文件(比如~/.bashrc或~/.zshrc)里的conda初始化内容,把错误路径修正。
3. 重置Jupyter内核配置
有时候Jupyter的内核配置会残留错误的环境信息,需要重置:
先列出当前所有Jupyter内核:
jupyter kernelspec list检查有没有指向
/opt/conda/envs/conda的内核,有的话直接删除:jupyter kernelspec remove <错误的内核名称>然后重新给root环境安装ipykernel:
conda install ipykernel python -m ipykernel install --user --name root --display-name "Python (Root)"这样能确保Jupyter使用的是正确的root环境内核。
4. 清理Conda缓存
缓存的旧环境信息也可能导致识别错误,试试清理缓存:
conda clean --all
清理完成后重启终端和Jupyter,再观察问题是否解决。
内容的提问来源于stack exchange,提问作者InLaw

