Tengo un script de Python 3 que me gustaría agregar como servicio usando Automator. La idea es que puedo hacer clic derecho en un archivo de texto y aparecerá una opción para ejecutar mi script en dicho archivo.
El shebang para mi secuencia de comandos 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 solo 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 forma predeterminada). Sin embargo, tenía la impresión de que proporcionar rutas explícitas era una solución.
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
Resolví mi problema cambiando el do shell
a:
do shell script "/usr/local/bin/python3 /path/to/script.py $@"
y dejando que el shebang se quede como:
#!/usr/bin/env python3
fd0
type -a python3
luego edite su publicación con el comando y los resultados.Aidan H.
/usr/bin/python3
o/usr/local/bin/python3
viceversa para evitar este problema en todo el entorno.mmmmmm
Aidan H.
/usr/bin/python3
así que la usé sin verificar.