Chiamando lo script Python 3 da AppleScript

1

Ho uno script di Python 3 che vorrei aggiungere come servizio usando Automator. L'idea è che posso fare clic con il pulsante destro su un file di testo e verrà visualizzata un'opzione per eseguire il mio script su detto file.

Lo shebang per il mio script Python è il seguente:

#!/usr/bin/env python3

Questo script funziona bene e come previsto in Terminal. Tuttavia, quando tento di automatizzarlo con AppleScript / Automator in questo modo:

on run {input, parameters}

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

return input
end run

Mi imbatto in problemi, in particolare:

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

Ho letto qui , tra l'altro, che AppleScript è stato progettato solo consente l'accesso ai comandi Unix e, ad esempio, non fornirà il proprio profilo bash (quindi non abbiamo accesso al nostro $ PATH per impostazione predefinita). Tuttavia avevo l'impressione che fornire percorsi espliciti fosse una soluzione.

Ho provato a cambiare do shell con questo:

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

e ho provato a cambiare lo shebang con questo:

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

Ma niente sembra funzionare. Semplicemente non è possibile eseguire uno script Python 3 tramite AppleScript? Non sono stato in grado di trovare una valida soluzione alternativa nelle mie ricerche.

Modifica: informazioni aggiuntive:

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

1 risposta

1

Risolto il problema modificando do shell in:

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

e lasciando che lo shebang resti come:

#!/usr/bin/env python3
    
risposta data 05.04.2016 - 23:36
fonte

Leggi altre domande sui tag