'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]
- Open your
environment.yml
file - Check the
name
andprefix
of the environment, usually at the first line (name) and the last line (prefix) of the file. - Rename both the name and prefix path to whatever name you are trying to create the new environment.
- Run the create env command again.
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 |