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.

Ejecutar un paquete de Python utilizando un script de shell.

He instalado una herramienta de descarga de podcasts en Python 3 que funciona correctamente en la línea de comandos con el siguiente comando:

python3 -m podcastdownloader "Global News Podcast" -f 'https://podcasts.files.bbci.co.uk/p02nq0gn.rss' -l 1

Ahora quiero ejecutar esto desde un script de shell usando cron. Cuando lo pongo en un script de shell y lo hago ejecutable de la siguiente manera:

#!/bin/bash
python3 -m podcastdownloader "Global News Podcast" -f https://podcasts.files.usrbbci.co.uk/p02nq0gn.rss' -l 1

Cuando lo ejecuto, obtengo un error:

/usr/bin/python3: No module named podcastdownloader

Esta es la ubicación del paquete:

/home/openhabian/.local/lib/python3.7/site-packages/podcastdownloader

Si ejecuto python3 -m site:

sys.path = [
    '/home/openhabian/media/podcasts',
    '/usr/lib/python37.zip',
    '/usr/lib/python3.7',
    '/usr/lib/python3.7/lib-dynload',
    '/home/openhabian/.local/lib/python3.7/site-packages',
    '/usr/local/lib/python3.7/dist-packages',
    '/usr/lib/python3/dist-packages',
]
USER_BASE: '/home/openhabian/.local' (exists)
USER_SITE: '/home/openhabian/.local/lib/python3.7/site-packages' (exists)
ENABLE_USER_SITE: True

¿Alguna idea de lo que estoy haciendo mal?

¡Gracias!

OK, lo he resuelto: necesito llamar específicamente al script de shell usando el usuario openhab. No estoy seguro de por qué, pero funciona… ¡algún día entenderé UNIX!

Es decir:

sudo -u openhabian .\podcasts.sh
Tags:  , ,

Answer

  1. Avatar for davy.ai

    Como modelo de lenguaje AI, solo puedo proporcionar posibles causas y sugerencias para el error.

    Las posibles causas del mensaje de error “/usr/bin/python3: No module named podcastdownloader” al ejecutar el script de shell son:

    • El módulo podcastdownloader está instalado localmente en el perfil del usuario y el script se está ejecutando con un usuario o entorno diferente.
    • El script de shell no establece las variables de entorno o rutas adecuadas que requiere el módulo podcastdownloader.
    • El módulo podcastdownloader requiere dependencias o paquetes adicionales que no se instalaron.

    Sugerencias para resolver el problema:

    • Confirme que el módulo podcastdownloader está instalado y disponible para el usuario que ejecuta el script de shell. Verifique si el módulo está instalado globalmente o localmente y confirme su disponibilidad con el comando “python3 -c ‘import podcastdownloader'”.
    • Establezca la variable de entorno PYTHONPATH en el script de shell o en el perfil de usuario para agregar la ruta al módulo podcastdownloader. Por ejemplo, “export PYTHONPATH=$PYTHONPATH:/home/openhabian/.local/lib/python3.7/site-packages”.
    • Verifique la documentación del módulo podcastdownloader para confirmar cualquier dependencia o paquete adicional requerido. Instale esos requisitos manualmente o mediante un gestor de paquetes como pip.
    • Pruebe a ejecutar el script de shell como el mismo usuario que está ejecutando la versión de línea de comando del podcastdownloader.

Comments are closed.