めも

メモ.

【エラー解決】「CondaValueError: Value error: prefix already exists」のため環境を作成できない

概要

conda env create -f environment.yml をコマンドラインで実行し、.ymlファイルに指定した設定で環境を作成したい。environment.ymlは以下のような記述になっている。

name: example
channels:
  - conda-forge
  - defaults
dependencies:
  - python=3.7.*
  - jupyter
  - sphinx=2.4.4
  - (以下略)

しかしconda env create -f environment.yml 実行後、

CondaValueError: Value error: prefix already exists:

のエラーが出て環境作成に失敗した。

conda info -e を用いて現在存在する環境を確認したが、「prefix already exists」に言われるような環境名の重複は存在していない。

原因

/Users/XXX/anaconda3/envs/ 以下に作成したい環境名と同一の名前をもつフォルダが残された状態になっている。フォルダは存在するが何らかの原因で環境の作成には失敗しており、conda info -eでは表示されていなかった。

解決法

/Users/XXX/anaconda3/envs/ 以下の不要な環境のフォルダを削除する。今回は「example」という名の環境を作成できなかったので「/Users/XXX/anaconda3/envs/example」フォルダを削除した(削除する場合は、それが実際には使用されていない環境であることを確認すること)。上記 /Users/XXX/anaconda3/envs/ のパスは conda info -e からでも確認できる。

不要な環境のフォルダを削除したのち、conda env create -f environment.ymlにて作成できることを確認した。