1. Conda

1.10. Compartir entorns

En projectes col·laboratius és freqüent la necessitat de reproduir tasques en els diferents centres. Per a això s’han de crear entorns agnòstics de sistema operatiu i plenament compatibles. Conda utilitza YAML (YAML Ain’t Markup Language) com a arxius d’entorn que ens permetran importar i exportar entorns.

Per convenció, els arxius d’entorn de Conda s’anomenen environment.yml.

Si en el nostre directori de treball executem:

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
$ conda env create
$ conda env create
$ conda env create

automàticament Conda buscarà l’arxiu environment.yml. Si no el troba, saltarà un error. Si l’arxiu d’entorn té un altre nom, el podem especificar de la manera següent:

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
$ conda env create --file prova.yaml
$ conda env create --file prova.yaml
$ conda env create --file prova.yaml

Podeu observar l’estructura d’un arxiu d’entorn de la figura 3, on es poden observar tres apartats:

  • name: nom de l’entorn que es crearà si no s’especifica el contrari.
  • Channels: canals a usar.
  • dependencies: paquets a instal·lar amb relació canal:paquet:versió
Figura 3. Exemple d’arxiu d’entorn YAML.
Font: elaboració pròpia.

Per poder generar un arxiu YAML d’un entorn que nosaltres hem creat, executarem:

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
$ conda env export -n basic-analisis --file basic.yaml
$ conda env export -n basic-analisis --file basic.yaml
$ conda env export -n basic-analisis --file basic.yaml

Especifiquem el nom de l’arxiu amb l’opció --file

Per assegurar que l’entorn pot ser reproduïble independentment del sistema operatiu cal especificar l’opció --from-history⁣:

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
$ conda env export -n basic-analisis --from-history --file basic.yaml
$ conda env export -n basic-analisis --from-history --file basic.yaml
$ conda env export -n basic-analisis --from-history --file basic.yaml