指定包安装位置 conda

指定包安装位置 conda

有没有办法在命令行上指定 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_PATHCONDA_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"

相关内容