Как я могу переименовать среду 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. временное использование двойного диска.

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


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".


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


-42

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

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

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


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 ',
Дональд С
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.