CondaValueError: Value error: prefix already exists:

CondaValueError: Value error: prefix already exists:

参考:

https://uoa-eresearch.github.io/eresearch-cookbook/recipe/2014/11/20/conda/

我已经 运行 使用以下命令来安装 conda 并创建虚拟环境。在我的问题的代码块之后继续阅读。

C:\Windows\System32>conda -V
conda 4.1.11

C:\Windows\System32>conda update conda
Fetching package metadata .........
Solving package specifications: ..........

Package plan for installation in environment C:\Program Files\Miniconda2:

The following packages will be downloaded:

    package                    |            build
    ---------------------------|-----------------
    conda-env-2.6.0            |                0          498 B
    enum34-1.1.6               |           py27_0          53 KB
    conda-4.2.9                |           py27_0         421 KB
    ------------------------------------------------------------
                                           Total:         475 KB

The following NEW packages will be INSTALLED:

    enum34:    1.1.6-py27_0

The following packages will be UPDATED:

    conda:     4.1.11-py27_0 --> 4.2.9-py27_0
    conda-env: 2.5.2-py27_0  --> 2.6.0-0

Proceed ([y]/n)? y

Fetching packages ...
conda-env-2.6. 100% |###############################| Time: 0:00:00  99.60 kB/s
enum34-1.1.6-p 100% |###############################| Time: 0:00:00 719.03 kB/s
conda-4.2.9-py 100% |###############################| Time: 0:00:00   1.33 MB/s
Extracting packages ...
[      COMPLETE      ]|##################################################| 100%
Unlinking packages ...
[      COMPLETE      ]|##################################################| 100%
Linking packages ...
[      COMPLETE      ]|##################################################| 100%

C:\Windows\System32>


C:\Windows\System32>Python -V
Python 2.7.12

C:\Windows\System32>conda create -n ENV1 python=2.7.12 anaconda

...

<-- chose 'n' for install

我在这里选择 'n',因为这是我 Linux 服务器崩溃的时候,因为我 运行 磁盘不足 space 当十亿个程序(提供或接受) 被要求安装。相反,我选择了 'n',然后想将其记录到一个文件中,这样我就可以看到整个列表,因为我无法在 Windows 命令提示符中向上滚动,所以我 运行下面的代码代替。它坐了一会儿,然后我用 CTRL+C 打破了。在我的问题的代码块之后继续阅读。

C:\Windows\System32>conda create -n ENV1 python=2.7.12 anaconda > C:\output.txt

y
Traceback (most recent call last):
  File "C:\Program Files\Miniconda2\Scripts\conda-script.py", line 5, in <module
>
    sys.exit(conda.cli.main())
  File "C:\Program Files\Miniconda2\lib\site-packages\conda\cli\main.py", line 1
50, in main
    return conda_exception_handler(_main)
  File "C:\Program Files\Miniconda2\lib\site-packages\conda\exceptions.py", line
 473, in conda_exception_handler
    return_value = func(*args, **kwargs)
  File "C:\Program Files\Miniconda2\lib\site-packages\conda\cli\main.py", line 1
44, in _main
    exit_code = args.func(args, p)
  File "C:\Program Files\Miniconda2\lib\site-packages\conda\cli\main_create.py",
 line 68, in execute
    install(args, parser, 'create')
  File "C:\Program Files\Miniconda2\lib\site-packages\conda\cli\install.py", lin
e 405, in install
    execute_actions(actions, index, verbose=not context.quiet)
  File "C:\Program Files\Miniconda2\lib\site-packages\conda\plan.py", line 643,
in execute_actions
    inst.execute_instructions(plan, index, verbose)
  File "C:\Program Files\Miniconda2\lib\site-packages\conda\instructions.py", li
ne 134, in execute_instructions
    cmd(state, arg)
  File "C:\Program Files\Miniconda2\lib\site-packages\conda\instructions.py", li
ne 47, in FETCH_CMD
    fetch_pkg(state['index'][arg + '.tar.bz2'])
  File "C:\Program Files\Miniconda2\lib\site-packages\conda\fetch.py", line 336,
 in fetch_pkg
    download(url, path, session=session, md5=info['md5'], urlstxt=True)
  File "C:\Program Files\Miniconda2\lib\site-packages\conda\fetch.py", line 419,
 in download
    for chunk in resp.iter_content(2**14):
  File "C:\Program Files\Miniconda2\lib\site-packages\requests\models.py", line
664, in generate
    for chunk in self.raw.stream(chunk_size, decode_content=True):
  File "C:\Program Files\Miniconda2\lib\site-packages\requests\packages\urllib3\
response.py", line 353, in stream
    data = self.read(amt=amt, decode_content=decode_content)
  File "C:\Program Files\Miniconda2\lib\site-packages\requests\packages\urllib3\
response.py", line 310, in read
    data = self._fp.read(amt)
  File "C:\Program Files\Miniconda2\lib\httplib.py", line 612, in read
    s = self.fp.read(amt)
  File "C:\Program Files\Miniconda2\lib\socket.py", line 384, in read
    data = self._sock.recv(left)
  File "C:\Program Files\Miniconda2\lib\ssl.py", line 756, in recv
    return self.read(buflen)
  File "C:\Program Files\Miniconda2\lib\ssl.py", line 643, in read
    v = self._sslobj.read(len)
KeyboardInterrupt

C:\Windows\System32>conda create -n ENV1 python=2.7.12 anaconda > C:\output.txt

CondaValueError: Value error: prefix already exists: C:\Program Files\Miniconda2
\envs\ENV1

如何删除 ENV1 前缀以便尝试重新安装?以及如何在 Windows 中记录所有这些输出。如果我移动到 C:\output.txt.

则输入不可见

我只是删除了文件夹 C:\Program Files\Miniconda2\envs\ENV1\

下次打开终端提示是 (基数)C:\Users\whatever> 只需输入: (基础) C:\Users\whatever> conda 激活 ENV1

您的提示应更改为: (ENV1) C:\Users\whatever>

工作完成后,只需说: (ENV1) C:\Users\whatever> 畅达停用

因为一遍又一遍地删除文件夹显然很不方便

您可以通过添加 --force 选项覆盖现有环境。

所以:

conda create -n ENV1 python=2.7.12 anaconda --force

请确保您已更新 anaconda,因为它是最近的功能。

编辑:--force 功能是在 conda 4.6 中添加的,但显然在最新版本 4.7、4.8 上,它并不总是有效

当先前删除了conda环境,但实际目录仍然存在(由于某种原因)时,"conda env remove -n ENV1"将不执行任何操作:

$ conda-env list

  # conda environments:
  #
  base                  *  /home/nmanos/miniconda
  test-env                 /home/nmanos/miniconda/envs/test-env

$ conda-env remove -n ENV1
# Nothing was removed (exit code zero)   

$ ls /home/nmanos/miniconda/envs/ENV1  
  bin  conda-meta  etc  go
# Directory still exists

所以你可以删除实际的ENV1目录,如下:

$ ENV_BASE=$(conda-env list | awk '/base/ { print $NF }')
$ echo $ENV_BASE
  /home/nmanos/miniconda

$ rm -rf "$ENV_BASE/envs/ENV1"
  1. 打开您的 environment.yml 文件
  2. 检查环境的nameprefix,通常在文件的第一行(名称)和最后一行(前缀)。
  3. 将名称和前缀路径重命名为您尝试创建新环境的任何名称。
  4. 运行 再次创建环境命令。
  5. conda env list 现在应该给你新的环境了。

您很可能拥有另一个环境的名称(和前缀),该环境已经存在于您获得 environment.yml.[= 的地方14=]