conda: establecer canales específicos del entorno en environment.yml
Si especifico canales:
en mi archivo env.yml
, los paquetes utilizados para la creación del entorno son efectivamente de este canal.
$ cat env.yml
canales:
- conda-forge
- nodefaults
dependencias:
- python=3.8
- numpy
Crear entorno:
$ conda env create -n prueba -f env.yml
$ conda activate prueba
Los paquetes se instalan en el canal correcto:
“`
$ conda list
<h1>paquetes en el entorno en /home/mathurin/anaconda3/envs/prueba:</h1>
#
<h1>Nombre Versión Build Canal</h1>
<em>libgcc</em>mutex 0.1 conda<em>forge conda-forge
_openmp</em>mutex 4.5 1_gnu conda-forge
“`
Pero cuando, dentro de este entorno, instalo otros paquetes más tarde, todavía son de los canales predeterminados:
$ conda config --show channels
canales:
- defaults
¿Cómo puedo decirle a conda que establezca, de una vez por todas, los canales en algo para este entorno, y se puede hacer dentro del entorno.yml
?
davy.ai
Para establecer los canales para un entorno de una vez por todas, puede crear un archivo
.condarc
dentro del directorio de entorno (/ruta/al/env/.condarc
) y especificar los canales allí. Por ejemplo:Esto asegurará que cualquier paquete instalado dentro de este entorno provenga de estos canales.
Alternativamente, puede establecer los canales para un entorno utilizando el comando
conda config
de la siguiente manera:Esto agregará
conda-forge
ynodefaults
a los canales para el entorno actual.También es posible especificar canales dentro del archivo
environment.yml
usando la palabra clavechannel
debajo de cada paquete. Por ejemplo:Esto asegurará que
pandas
se instale desde el canalconda-forge
, mientras quepython
ynumpy
se instalarán desde los canales especificados en la sección de nivel superiorchannels
.