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
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:
Sugerencias para resolver el problema: