1 votos

Llamada a Python 3 script desde AppleScript

Tengo un script que me gustaría añadir como Servicio usando Automator. La idea es que pueda hacer clic con el botón derecho del ratón en un archivo de texto, y que aparezca una opción para ejecutar mi script en dicho archivo.

El shebang de mi script de Python es el siguiente:

#!/usr/bin/env python3

Este script funciona bien y como se esperaba en Terminal. Sin embargo, cuando intento automatizar esto con AppleScript/Automator así:

on run {input, parameters}

tell application "Terminal"
    do shell script "/path/to/script.py $@"
end tell

return input
end run

Me encuentro con problemas, a saber:

Terminal got an error: env: python3: No such file or directory

He leído aquí entre otros lugares, que AppleScript, por diseño, sólo permite el acceso a los comandos de Unix, y que, por ejemplo, no se abastecerá de tu perfil de bash (por lo que no tenemos acceso a nuestro $PATH por defecto). Sin embargo, tenía la impresión de que proporcionar rutas explícitas era una solución.

He probado a cambiar el do shell a esto:

do shell script "/usr/bin/python3 /path/to/script.py $@"

y he probado a cambiar el tinglado por esto:

#!/usr/bin/env /usr/bin/python3

Pero nada parece funcionar. ¿Simplemente no es posible ejecutar un script a través de AppleScript? No he sido capaz de encontrar una solución viable en mis búsquedas.

Editar: Información adicional:

$ type -a python3
python3 is /usr/local/bin/python3

2voto

Aidan H. Puntos 51

Resolví mi problema cambiando el do shell a:

do shell script "/usr/local/bin/python3 /path/to/script.py $@"

y dejar que el tinglado se quede como:

#!/usr/bin/env python3

AppleAyuda.com

AppleAyuda es una comunidad de usuarios de los productos de Apple en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X