Есть ли способ указать в командной строке, где conda устанавливает пакеты и находит предварительные требования? Когда я создаю новый пакет с помощью conda create --prefix /path/to/whereiwantstuff/envs/envname pkg1 pkg2 среда живет там, где я ей сказал, но пакеты по-прежнему устанавливаются в первое местоположение в pkgs_dirs в моем .condarc (или по умолчанию ~/.conda/pkgs); похоже, что нет опции командной строки, чтобы указать, куда отправляются пакеты.

Конечная цель - дать пользователям возможность создавать как групповые, так и индивидуальные среды. Возможно, пользователи A, B и C группы ABC используют определенный набор программного обеспечения, но указанное программное обеспечение не может / не должно устанавливаться в масштабе всей системы (например, нишевое программное обеспечение в среде HPC). В идеале должен быть /path/to/group_dir/.conda куда будут отправляться среды и пакеты, и к которому может обратиться любой, у кого есть необходимые разрешения и следующие данные в своем .condarc:

envs_dirs:
  - ~/.conda/envs
  - /path/to/group_dir/.conda/envs
pkgs_dirs:
  - ~/.conda/pkgs
  - /path/to/group_dir/.conda/pkgs

Возможно ли это без каких-либо хакерских действий, таких как постоянное изменение .condarc или перемещение пакетов вручную?

1 ответ1

1

Я никогда не заканчивал тем, что нашел параметр командной строки, но смог достигнуть той же самой цели с модулями среды. Переменные среды CONDA_ENVS_PATH и CONDA_PKGS_DIRS позволяют использовать произвольные каталоги для сред и пакетов Conda. Установка этих параметров и CONDARC (описанных здесь) в файле модуля позволяет загрузить модуль conda группы, а затем не беспокоиться о том, где в конечном итоге окажутся среды и пакеты.

Вот немного упрощенная версия файла модуля:

#%Module1.1

conflict        miniconda
module-whatis   "Provides group Miniconda"

set             PREFIX          "/path/to/group/software/miniconda3"
set             GROUP_CONDA     "/path/to/group/software/.conda"

prepend-path    PATH            "${PREFIX}/bin"
setenv          CONDARC         "${GROUP_CONDA}/.condarc"
setenv          CONDA_ENVS_PATH "${GROUP_CONDA}/envs"
setenv          CONDA_PKGS_DIRS "${GROUP_CONDA}/pkgs"

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .