Как я могу переименовать среду conda?

Ответы:

460

Ты не можешь

Одним из обходных путей является создание клоновой среды, а затем удаление оригинальной:

(помните о деактивации текущей среды deactivateв Windows и source deactivateMacOS / Linux)

conda create --name new_name --clone old_name
conda remove --name old_name --all # or its alias: `conda env remove --name old_name`

У этого метода есть несколько недостатков:

  1. он перезагружает пакеты - вы можете использовать --offlineфлаг, чтобы отключить его,
  2. время, затрачиваемое на копирование файлов среды,
  3. временное использование двойного диска.

Существует открытый вопрос, запрашивающий эту функцию.

pkowalczyk
источник
90
booooo, почему нельзя переименовать conda env?
Чарли Паркер
6
чтобы оставить работу для тех, кто
Сараванабалаги Рамачандран
3
Другой способ - клонировать среду, conda create --name new_name --clone old_nameзатем удалить старую.
Y0da
4
Слово предупреждения - я попытался сделать это, и натолкнулся на причудливые ошибки - мой .bashrcбольше не работал, и попытка запустить pytestпотерпела бы неудачу, пытаясь сослаться на теперь удаленную среду. Я пробовал новые снаряды и перезагружал без удачи. Закончилось тем, что пришлось выбросить новую среду, а затем начать с чистой установки. Медленнее, но, кажется, на самом деле работает сейчас.
dwanderson
3
@dwanderson +5000, поскольку я собирался попытаться использовать этот ответ, но вместо этого я просто собираюсь сразу же снять повязку и воссоздать свой плохо названный env с нуля.
bgoodr
13

Основываясь на полезном комментарии dwanderson , я смог сделать это в одной строке Bash:

conda create --name envpython2 --file <(conda list -n env1 -e )

Мой плохо названный env был "env1", а новый, который я хочу клонировать, - "envpython2".

bgoodr
источник
1
Наткнулся на ошибку, сказав PackagesNotFoundError: The following packages are not available from current channelsс этим сценарием. Этот сценарий, вероятно, работает только тогда, когда у вас нет пакетов, которые установлены с помощью pip и которые не доступны в conda в существующей среде?
Юйсуань Чен
-42

Просто откройте папку «\ Anaconda \ envs» и переименуйте ее.

Перед переименованием перед переименованием

После переименования после переименования

MengLV LI
источник
13
Этот ответ ломает юпитер. Jupyter сообщает «путь не найден» при попытке запустить ядро ​​python.
MD004
5
Существует огромный риск разрушить окружающую среду
FabienP
2
не делай этого.
BenP
одна из причин - плохая идея - в каталоге env / name есть файлы, которые содержат абсолютный путь к этому каталогу. Если вы переместите каталог, путь больше не будет работать, поскольку он указывает на старый каталог, который больше не существует: envs / ds_tensorflow / Lib / site-packages / sipconfig.py: 'default_bin_dir': 'C: / Users / me / miniconda3 / envs / ds_tensorflow ', envs / ds_tensorflow / Lib / site-packages / sipconfig.py:' default_mod_dir ':' C: / Users / me / miniconda3 / envs / ds_tensorflow \\ Lib \\ site-packages ',
Дональд С