conda 环境在 conda env 列表中没有名称可见 - 如何在 shell 中激活它?

jul*_*ell 21 python anaconda conda

我在 anaconda-navigator 中创建了一个名为 B3 的环境。如果从导航器内启动它工作正常。

但是,当我想在 shell 中激活它时,我得到“找不到环境 B3”。

如果我使用 conda env list,则环境可见,但其名称为空。如果我尝试使用文件路径,我会得到“不是 conda 环境”。

为什么缺少名称,如何从 shell 激活它? 在此处输入图片说明

mer*_*erv 21

Conda 环境的基于名称的引用仅适用于位于envs_dirs配置选项中列出的目录之一中的环境(请参阅参考资料conda config --describe envs_dirs)。默认情况下,这对应envs/于 Conda 安装中的子目录。如果在这些目录之一之外创建 env,则不能使用名称来引用它。相反,必须通过其路径激活它:

选项 0:按路径激活(修复 OP 的错字)

conda activate /home/julianhatwell/anaconda3/envs/B3
Run Code Online (Sandbox Code Playgroud)

请注意,OP 最初有一个错字(anaconda2应该是anaconda3)。在指出这一点后(请参阅问题的评论),提问者要求回答以下问题:

如何将无名环境转换为有名环境?

转换为命名环境

以下是启用基于名称的激活的可能方法。

选项 1:克隆到目录

使用conda activate B3, 的一种选择是在默认目录中重新创建您的B3 环境。您可以使用该--clone标志来完成此操作。

conda create --clone path/to/the/nameless_env -n named_env
Run Code Online (Sandbox Code Playgroud)

选项 2:添加父目录

或者,您可以将相关环境的父目录添加到envs_dirs配置选项中。

conda config --append envs_dirs /path/to/the/parent_dir
Run Code Online (Sandbox Code Playgroud)

另一种可能性是在一个到envs_dirs环境文件夹的文件夹中创建一个符号链接。它似乎有效,但它不是一种常见做法,因此它可能具有未报告的缺点。

  • @Cos `--clone` 参数接受路径,例如,`conda create --clone path/to/the/nameless_env -n named_env`。 (3认同)
  • 我相信上面的选项 2 应该是 `conda config --append envs_dirs /path/to/the/parent_dir` (2认同)

小智 10

当您使用 --prefix 创建 conda env 时,它将没有名称,并且要给它一个名称,请执行以下操作:

# ex path: /Users/username/opt/miniconda3/envs/`
conda config --append envs_dirs <path to env folder here>
Run Code Online (Sandbox Code Playgroud)

激活环境:

conda activate <name of the env>
Run Code Online (Sandbox Code Playgroud)


Nir*_*Nir 5

要获取可用环境的列表,请使用:

conda env list
Run Code Online (Sandbox Code Playgroud)

要激活无名环境,请使用:

conda activate <Folder>
Run Code Online (Sandbox Code Playgroud)