Llamando al script Python 3 desde AppleScript

1

Tengo un script de Python 3 que me gustaría agregar como un servicio usando Automator. La idea es que puedo hacer clic con el botón derecho en un archivo de texto y se mostrará una opción para ejecutar mi script en dicho archivo.

El script de shebang para mi Python es el siguiente:

#!/usr/bin/env python3

Este script funciona bien y como se espera 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 solo tiene un diseño permite el acceso a los comandos de Unix y, por ejemplo, no generará su perfil de bash (por lo tanto, no tenemos acceso a nuestro $ PATH de manera predeterminada). Sin embargo, tenía la impresión de que proporcionar rutas explícitas era una solución alternativa.

He intentado cambiar el do shell a esto:

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

y he intentado cambiar el shebang a esto:

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

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

Editar: Información adicional:

$ type -a python3
python3 is /usr/local/bin/python3
    
pregunta Aidan H. 05.04.2016 - 19:39

1 respuesta

1

Resolví mi problema cambiando el do shell a:

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

y dejar que el shebang permanezca como:

#!/usr/bin/env python3
    
respondido por el Aidan H. 05.04.2016 - 23:36

Lea otras preguntas en las etiquetas