Конфигурация Conda показывает дополнительный элемент, чем настроенный

#ubuntu #conda

#ubuntu #конда

Вопрос:

conda config --show-sources показывает, что существует только один файл конфигурации, который /home/gqqnbig/.condarc . Этот файл устанавливается envs_dirs в 2 расположения.

 $ conda config --show-sources --debug
DEBUG conda.gateways.logging:set_verbosity(231): verbosity set to 2
==> /home/gqqnbig/.condarc <==
envs_dirs:
  - ~/shared/.conda/envs
  - /opt/anaconda3/envs
pkgs_dirs:
  - /opt/anaconda3/pkgs
  - ~/shared/.conda/pkgs

==> cmd_line <==
debug: True
 

Тем не менее, conda config --show указано, что вычисленное значение для envs_dirs имеет 3 местоположения.

 $ conda config --show envs_dirs --debug
DEBUG conda.gateways.logging:set_verbosity(231): verbosity set to 2
DEBUG conda.base.context:root_writable(498): [Errno 13] Permission denied: '/opt/anaconda3/conda-meta/history'
envs_dirs:
  - /home/gqqnbig/shared/.conda/envs
  - /opt/anaconda3/envs
  - /home/gqqnbig/.conda/envs
 

Как заполняется третье местоположение? Как мне запретить использование conda /home/gqqnbig/.conda/envs ?

Ответ №1:

Каталоги среды Conda по умолчанию

Оба каталога $CONDA_ROOT_PREFIX/envs и ~/.conda/envs каталоги включены в код Conda и всегда будут добавлены к списку в .condarc (что показывает ваша первая команда), чтобы сгенерировать окончательный расчет context.envs_dirs (что показывает ваша вторая команда). Conda будет прибегать к его использованию только в том случае, если все более высокие прецедентные местоположения недоступны для записи.

Я не знаю истории этой части кода, но я подозреваю, что эта папка по умолчанию в основном используется как запасной вариант для пользователей в общих системах, где экземпляр Conda (и, следовательно $CONDA_ROOT_PREFIX/envs , ) находится в недоступном для записи месте. То есть, загрузка в эти два каталога пытается обеспечить наличие хотя бы одной папки среды, доступной для записи, как в сценариях установки для одного пользователя, так и для общего пользователя.

Принудительное только для чтения

Я не совсем уверен, но не похоже, что Conda использует эту папку для каких-либо других целей. Итак, если кто-то действительно хотел убедиться, что Conda никогда не использует его, вы могли бы просто сделать каталог доступным только для чтения:

 chmod -w ~/.conda/envs
 

Чтобы быть в безопасности, вы можете попробовать установить его, а затем протестировать создание среды с подробным описанием, чтобы проверить наличие проблем.