'CondaValueError: Value error: prefix already exists:

Reference:

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

I've run the following commands to install conda and create a virtual environment. Continue reading after code block for my question.

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

I chose 'n' here, because this is when I crashed my Linux server because I ran out of disk space when a billion programs (give or take) were asked to be installed. Instead, I chose 'n', and then wanted to log this to a file so I could see the entire list because I couldn't scroll up in the Windows command prompt, so I ran the code below instead. It sat for a while, and then I broke out using CTRL+C. Continue reading after code block for my question.

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

How can I remove the ENV1 prefix so I can try re-installing? And how can I log all of this output in Windows. The input is not visible if I move to C:\output.txt.



Solution 1:[1]

I simply deleted folder C:\Program Files\Miniconda2\envs\ENV1\.

Solution 2:[2]

You can overwrite the existing enviroment by adding the --force option.

So:

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

Make sure that you have updated you anaconda because it is a recent function.

Edit: --force feature was added in conda 4.6, but apparently on latest versions 4.7, 4.8, it doesn't always work

Solution 3:[3]

When the conda environment was previously removed, but the actual directory still exists (for some reason), then the "conda env remove -n ENV1" will do nothing:

$ 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

So you can remove the actual ENV1 directory, as follow:

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

$ rm -rf "$ENV_BASE/envs/ENV1"

Solution 4:[4]

  1. Open your environment.yml file
  2. Check the name and prefix of the environment, usually at the first line (name) and the last line (prefix) of the file.
  3. Rename both the name and prefix path to whatever name you are trying to create the new environment.
  4. Run the create env command again.
  5. conda env list should give your new environment now.

It is most likely that you are having the name (& prefix) of the other env which is already existing from where you got the environment.yml.

Solution 5:[5]

The next time you open the terminal and the prompt is (base) C:\Users\whatever> Just type: (base) C:\Users\whatever> conda activate ENV1

Your prompt should change to: (ENV1) C:\Users\whatever>

And once your work is done just say: (ENV1) C:\Users\whatever> conda deactivate

Because it's obviously inconvenient to keep deleting the folder over and over

Sources

This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.

Source: Stack Overflow

Solution Source
Solution 1 MacGyver
Solution 2
Solution 3 Noam Manos
Solution 4 eisenerz108
Solution 5 annabelle1301