Especifique o local de instalação do pacote

0

Existe uma maneira de especificar, na linha de comando, onde o conda instala pacotes e encontra os pré-requisitos? Quando eu crio um novo pacote com conda create --prefix /path/to/whereiwantstuff/envs/envname pkg1 pkg2 , o ambiente mora onde eu disse, mas os pacotes ainda estão instalados no primeiro local em pkgs_dirs em meu .condarc (ou o padrão ~/.conda/pkgs ); não parece haver uma opção de linha de comando para especificar para onde os pacotes vão.

O objetivo final é permitir que os usuários criem ambientes de grupo e individuais. Talvez os usuários A, B e C do grupo ABC usem um determinado conjunto de software, mas o software não pode / não deve ser instalado em todo o sistema (por exemplo, um software de nicho em um ambiente HPC). O ideal seria que houvesse um /path/to/group_dir/.conda em que ambos os ambientes e pacotes fossem, e que pudesse ser acessado por qualquer pessoa que tivesse as permissões corretas e o seguinte em .condarc :

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

Isso é possível sem fazer algo estúpido como modificar constantemente o .condarc ou mover manualmente os pacotes?

    
por Michael Greenburg 01.06.2018 / 19:52

1 resposta

1

Eu nunca encontrei um parâmetro de linha de comando, mas consegui realizar o mesmo propósito com módulos de ambiente . As variáveis de ambiente CONDA_ENVS_PATH e CONDA_PKGS_DIRS permite usar diretórios arbitrários para ambientes Conda e pacotes. Configurando estes e CONDARC (descrito aqui ) em um modulefile permite para carregar o módulo group conda, então não se preocupe sobre onde os ambientes e pacotes acabam.

Aqui está uma versão ligeiramente simplificada do modulefile:

#%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"
    
por 07.09.2018 / 02:43