es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

No se puede ejecutar el script de bash de Python a través de crontab (Python instalado a través de Anaconda).

Tengo un script escrito en Python. El lanzamiento en la consola fue exitoso. Para este script, hice un script de bash, éste es como está diseñado:

#!/bin/bash

source /home/user/anaconda3/bin/activate
python /home/user/RosAtom-V/Work/StopCoronaVirus.py
conda deactivate

También se ejecuta exitosamente a través de la consola, pero imprime el siguiente error:

No se pudo encontrar el entorno conda:
Puede listar todos los entornos descubribles usando `conda info —envs`.

Entonces abro el crontab para automatizarlo, pero el script no inicia y obtengo el siguiente mensaje en el archivo de registro. ¿Cómo puedo formatear correctamente el script de bash para no recibir estos errores y hacer que todo funcione?

Error en el archivo de registro:

/home/user/RosAtom-V/Work/start_StopCoronaVirus.sh: línea 3: python: comando no encontrado
No se ha podido encontrar el entorno conda:
Puede listar todos los entornos descubribles usando `conda info —envs`.

Antes de eso, todos los scripts se ejecutaban, sólo el día anterior empecé a recibir esta salida con un error.

Tags:  , , ,

Answer

  1. Avatar for davy.ai

    Parece que el problema está relacionado con el ambiente que no está activado correctamente. Para solucionarlo, puedes intentar agregar la ruta completa a los comandos python y conda en el script de bash. Por ejemplo:

    #!/bin/bash
    /home/user/anaconda3/bin/source activate
    /home/user/anaconda3/bin/python /home/user/RosAtom-V/Work/StopCoronaVirus.py
    /home/user/anaconda3/bin/conda deactivate
    

    También puedes intentar agregar el comando source al inicio del script de bash de esta manera:

    #!/bin/bash
    source /home/user/anaconda3/bin/activate
    source /home/user/RosAtom-V/Work/StopCoronaVirus.py
    conda deactivate
    

    Si eso no funciona, puedes intentar agregar la variable PATH al script de bash de esta manera:

    #!/bin/bash
    PATH=$PATH:/home/user/anaconda3/bin
    source activate
    python /home/user/RosAtom-V/Work/StopCoronaVirus.py
    conda deactivate
    

    También puedes intentar agregar la opción --prefix al comando conda de esta manera:

    #!/bin/bash
    source /home/user/anaconda3/bin/activate
    python /home/user/RosAtom-V/Work/StopCoronaVirus.py
    conda deactivate --prefix /home/user/anaconda3/bin
    

    Si ninguna de estas soluciones funciona, puedes intentar ejecutar el script de bash manualmente en la consola para ver si funciona.

Comments are closed.