【问题标题】:Jupyter Erroneous Environments Showing up in Conda tab with `nb_conda` extensionJupyter 错误环境显示在带有 `nb_conda` 扩展名的 Conda 选项卡中
【发布时间】:2025-12-28 22:05:11
【问题描述】:

不知道如何解决这个问题,或者它是如何损坏的。这是 jupyterhub 安装上的 conda。

错误信息:

EnvironmentLocationNotFound:不是 conda 环境

图片如下:

来自Conda 标签的图片(出现了一个多余的anaconda3 env):

加载时出错的图片:

【问题讨论】:

    标签: python anaconda jupyter-notebook jupyter conda


    【解决方案1】:

    这是a confirmed bug in nb_conda for conda version >=4.4

    原因是conda info --json 输出的变化。全新安装的 4.3.33 版提供 envs=[],版本 >=4.4 提供 envs=[root_env_dir](始终非空)。

    在当前发布的版本中还没有修复(nb_conda 2.2.1),但是我们可以手动修复这个错误,通过更改本地机器中的current bug code base~/anaconda3/pkgs/nb_conda-2.2.1-py36h349edbb_0/lib/python3.6/site-packages/nb_conda/envmanager.py,注意您自己的 anaconda 根目录(@987654334 @) 和 pkgs 构建版本(py36h349edbb_0) 可能不同。

    来自:

        return {
            "environments": [root_env] + [get_info(env)
                                          for env in info['envs']]
        }
    

    到:

        return {
            "environments": [root_env] + [get_info(env) for env in info['envs']
                                          if env != root_env['dir']]
        }
    

    然后,关闭任何一个 jupyter notebook 服务器并重新启动一个,anaconda3 env 将消失。

    【讨论】:

    • 我尝试更改代码,但它仍然是同样的错误。并且环境 anaconda3 仍然存在。有什么建议吗?
    【解决方案2】:

    这要么是nbconda 中的错误,要么是陈旧的内核规范文件。 修复它检查是否/home/user/.conda/envs/anaconda3 exists,如果它确实删除它。

    在终端中发出jupyter kernelspec list,对我来说它会给出:

    $ jupyter kernelspec list
    Available kernels:
      code_scattering    /usr/local/share/jupyter/kernels/code_scattering
      meetup             /usr/local/share/jupyter/kernels/meetup
      octave             /usr/local/share/jupyter/kernels/octave
      python2            /usr/local/share/jupyter/kernels/python2
      python3            /usr/local/share/jupyter/kernels/python3
      pythonroot         /usr/local/share/jupyter/kernels/pythonroot
    

    它应该列出所有内核规范及其位置。 找到对应的env,删除文件夹。

    【讨论】: