Укажите место установки пакета conda

352
Michael Greenburg

Есть ли способ указать в командной строке, где 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или перемещение пакетов вручную?

0

1 ответ на вопрос

1
Michael Greenburg

Я никогда не заканчивал тем, что нашел параметр командной строки, но смог достигнуть той же самой цели с модулями среды . Переменные среды 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 "$/bin" setenv CONDARC "$/.condarc" setenv CONDA_ENVS_PATH "$/envs" setenv CONDA_PKGS_DIRS "$/pkgs"