CondaValueError:目标前缀是基本前缀。堕胎

mat*_*ash 13 anaconda conda

我有以下conda环境文件environment.yml

name: testproject
channels:
- defaults
dependencies:
- python=3.7
prefix: /opt/projects/testproject
Run Code Online (Sandbox Code Playgroud)

在创建环境之前,仅存在基本环境:

(base) me@mymachine:/opt/projects/testproject$ conda env list
# conda environments:
#
base                  *  /opt/anaconda/anaconda3
Run Code Online (Sandbox Code Playgroud)

尝试创建环境时,出现以下错误:

(base) me@mymachine:/opt/projects/testproject$ conda create -f environment.yml

CondaValueError: The target prefix is the base prefix. Aborting.
Run Code Online (Sandbox Code Playgroud)

这个错误是什么意思?

dar*_*ith 21

您需要使用

conda env create -f environment.yml
Run Code Online (Sandbox Code Playgroud)

注意env之后conda和之前的额外内容create

有关更多信息,请查阅文档

  • 是只有我一个人还是 conda 的语法经常令人困惑。 (8认同)
  • 如果您不小心*反转*参数,您也可能会收到此错误:`conda create env -fenvironment.yml`。修正保持不变。 (2认同)

jac*_*ack 18

很棘手,看看两者的区别:

conda create –-name my_env 
Run Code Online (Sandbox Code Playgroud)

conda create --name my_env 
Run Code Online (Sandbox Code Playgroud)

前面的第一个破折号name略有不同(而不是-)。我需要 15 分钟才能注意到。

  • 如果你添加了差异,@jack 会更有用。 (8认同)
  • @suvy 第一个破折号“-”是错误的,应该是“-”。我遇到此错误是因为我从具有自动格式功能的笔记本中复制了内容,并且破折号以某种方式在那里进行了转换。 (8认同)

小智 9

您可以使用:

conda create --name nameOfEnv
Run Code Online (Sandbox Code Playgroud)

  • 这没有帮助,因为OP要求使用environment.yml创建env (2认同)