jul*_*ell 21 python anaconda conda
我在 anaconda-navigator 中创建了一个名为 B3 的环境。如果从导航器内启动它工作正常。
但是,当我想在 shell 中激活它时,我得到“找不到环境 B3”。
如果我使用 conda env list,则环境可见,但其名称为空。如果我尝试使用文件路径,我会得到“不是 conda 环境”。
mer*_*erv 21
Conda 环境的基于名称的引用仅适用于位于envs_dirs配置选项中列出的目录之一中的环境(请参阅参考资料conda config --describe envs_dirs)。默认情况下,这对应envs/于 Conda 安装中的子目录。如果在这些目录之一之外创建 env,则不能使用名称来引用它。相反,必须通过其路径激活它:
conda activate /home/julianhatwell/anaconda3/envs/B3
Run Code Online (Sandbox Code Playgroud)
请注意,OP 最初有一个错字(anaconda2应该是anaconda3)。在指出这一点后(请参阅问题的评论),提问者要求回答以下问题:
“如何将无名环境转换为有名环境?”
以下是启用基于名称的激活的可能方法。
使用conda activate B3, 的一种选择是在默认目录中重新创建您的B3 环境。您可以使用该--clone标志来完成此操作。
conda create --clone path/to/the/nameless_env -n named_env
Run Code Online (Sandbox Code Playgroud)
或者,您可以将相关环境的父目录添加到envs_dirs配置选项中。
conda config --append envs_dirs /path/to/the/parent_dir
Run Code Online (Sandbox Code Playgroud)
另一种可能性是在一个到envs_dirs环境文件夹的文件夹中创建一个符号链接。它似乎有效,但它不是一种常见做法,因此它可能具有未报告的缺点。
小智 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)
要获取可用环境的列表,请使用:
conda env list
Run Code Online (Sandbox Code Playgroud)
要激活无名环境,请使用:
conda activate <Folder>
Run Code Online (Sandbox Code Playgroud)