Verifique si el entorno de conda existe y créelo si no lo está en bash.
Tengo un script de construcción para ejecutar una aplicación simple de Python. Estoy tratando de configurarlo de manera que se ejecute para cualquier usuario que tenga conda instalado y en su PATH. Sin otros requisitos previos. Ya casi lo he logrado, pero me gustaría hacerlo más eficiente para los usuarios que regresan.
build_run.sh
conda init bash
conda env create --name RUN_ENV --file ../run_env.yml -q --force
conda activate RUN_ENV
python run_app.py
conda deactivate
Me gustaría que el script verifique si RUN_ENV ya existe y lo active en lugar de forzar su creación cada vez. Intenté esto:
ENVS=$(conda env list | awk '{print }')
if [[ conda env list = *RUN_ENV* ]]; then
conda activate RUN_ENV
else
conda env create --name RUN_ENV --file ../run_env.yml -q
conda activate RUN_ENV
exit
fi;
python run_app.py
conda deactivate
pero siempre devolvía un valor falso e intentaba crear RUN_ENV.
davy.ai
Para verificar si el RUN_ENV ya existe y activarlo en lugar de forzar su creación cada vez en el script de construcción, puedes usar el siguiente código:
Este código utiliza
conda info --envs
para listar todos los entornos disponibles y luego usagrep
para buscar “RUN_ENV”. Si lo encuentra, activa el entorno y si no, lo crea y lo activa. Los comandosecho
son solo con fines de registro.Ten en cuenta que la condición en la instrucción
if
utilizagrep -q
para suprimir la salida y solo retornar el estado de salida. Esto se debe a que no necesitamos ver la salida, solo usar el estado de salida para determinar si el entorno existe o no.