Как conda-env list / conda info --envs находит среду? - PullRequest
0 голосов
/ 11 января 2019

Я экспериментировал с anaconda / miniconda, потому что мои пользователи используют программы структурной биологии, установленные с miniconda, и ни один из авторов A) не учел, что могут быть другие приложения miniconda B) что их программы будут использоваться в мульти среда пользователя.

Итак, используя Arch linux, сначала я установил anaconda (версия 4.5.12), а затем, используя свою учетную запись, создал пару тестовых сред:

conda create -n snakes
conda create -n sharks

Затем я (полностью) удалил Anaconda и установил Miniconda (также версия 4.5.12), а затем создал другую среду в нестандартном месте с правами root:

# conda create -p /usr/local/miniconda/pyem

Здесь все становится странно. Когда я перечисляю среды как пользователь root, я вижу не только настройки по умолчанию и ту, которую я только что создал, но также и те, которые я создал ранее, используя свою учетную запись пользователя!

[root@lizard /]# conda info --envs
# conda environments:
#
                         /home/cnsit/.conda/envs/sharks
                         /home/cnsit/.conda/envs/snakes
base                  *  /opt/miniconda3
                         /usr/local/miniconda/pyem

(Команда conda-env list выдает тот же вывод.)

Итак, вопрос: как conda находит среды, созданные другим пользователем? Более того, когда весь родительский каталог исходного экземпляра conda был удален и заменен одним в совершенно другом месте ( поэтому никакой локальный environment.txt файл не может быть каталогизирован.

1 Ответ

0 голосов
/ 12 января 2019

Код для команды info содержится в модуле cli.main_info, и соответствующий код для этого случая здесь . Это импортирует функцию из более чем здесь , которая (среди прочего) считывает значение конфигурации envs_dirs. Вы можете узнать значение этого значения конфигурации в вашей системе, запустив

conda config --show envs_dirs

Я ожидаю, что это покажет вам каталоги пользователей для сред, в которых выполняется поиск.

...