Ubuntu18.04-Anaconda环境安装xeus-cling后Jupyter无C++14内核
嘿,我来帮你排查这个问题!你在Anaconda环境装了xeus-cling但Jupyter Notebook里看不到C++内核,大概率是内核没正确注册、环境激活后路径不对,或者安装时的源/步骤有疏漏。咱们一步步来解决:
可能的出错点及修复步骤
1. 确认安装环境的正确性
首先得确保你是激活目标conda环境后才安装的xeus-cling和Jupyter,不然很可能把软件装到base环境里了,导致当前环境识别不到:
- 先重新激活你的环境(假设环境名叫
cpp_env,换成你自己的环境名):conda activate cpp_env - 检查当前环境是否已安装所需包:
如果输出里没有xeus-cling,就重新用conda-forge源安装(xeus-cling主要托管在这个源):conda list | grep -E "xeus-cling|jupyter"conda install -c conda-forge xeus-cling jupyter notebook
2. 检查Jupyter内核是否已注册
有时候xeus-cling安装后不会自动把内核注册到Jupyter的识别列表里,咱们手动查一下:
- 查看Jupyter当前能识别的内核:
如果看不到jupyter kernelspec listxeus-cling-cpp11、xeus-cling-cpp14或xeus-cling-cpp17这类条目,说明内核没注册。 - 手动注册内核:
先找到conda环境里的xeus-cling内核配置目录:
你会看到对应C++版本的内核文件夹,比如ls $CONDA_PREFIX/share/jupyter/kernels/xeus-cling-cpp17,然后执行注册命令:
(需要其他C++版本的话,把jupyter kernelspec install --user $CONDA_PREFIX/share/jupyter/kernels/xeus-cling-cpp17cpp17换成cpp11或cpp14即可)
3. 确认Jupyter的启动路径
激活conda环境后,如果你用的是base环境或者系统全局的Jupyter启动,也看不到当前环境的内核:
- 激活环境后,先检查Jupyter的路径是否属于当前环境:
正常输出应该是which jupyter~/anaconda3/envs/cpp_env/bin/jupyter这类(对应你的环境路径)。如果显示的是base环境或系统路径,说明PATH优先级有问题。 - 解决办法:用当前环境的绝对路径启动Jupyter:
$CONDA_PREFIX/bin/jupyter notebook
4. 清理残留的内核缓存(如果之前安装过)
如果之前装过xeus-cling又卸载过,可能残留了旧的内核配置,导致识别异常:
- 先删除旧的内核条目:
然后重新安装xeus-cling,再执行步骤2的注册命令。jupyter kernelspec remove xeus-cling-cpp17
5. 检查权限问题
如果你的用户对conda环境目录没有读写权限,也会导致内核配置无法正常生成:
- 安装时加上
--user参数,确保包安装到用户目录下:
(不建议用conda install --user -c conda-forge xeus-cling jupyter notebooksudo操作conda,容易打乱环境权限)
按照上面的步骤排查一遍,应该就能在Jupyter Notebook的内核选择列表里看到C++内核啦!
内容的提问来源于stack exchange,提问作者Isaac Domínguez Larrañaga
相关产品推荐
相关产品推荐

