有没有办法在命令行上指定 conda 安装包和查找先决条件的位置?当我创建一个新的包时,conda create --prefix /path/to/whereiwantstuff/envs/envname pkg1 pkg2
环境位于我告诉它的位置,但包仍然安装到pkgs_dirs
我的第一个位置.condarc
(或默认位置~/.conda/pkgs
);似乎没有命令行选项可以指定包的位置。
最终目标是使用户能够创建组和个人环境。也许组 ABC 的用户 A、B 和 C 使用一组给定的软件,但所述软件不能/不应该安装在系统范围内(例如 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
我最终没有找到命令行参数,但能够使用以下命令实现相同的目的环境模块. 环境变量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"