Ich habe ein Python 3-Skript, das ich mit Automator als Dienst hinzufügen möchte. Die Idee ist, dass ich mit der rechten Maustaste auf eine Textdatei klicken kann und eine Option angezeigt wird, um mein Skript für diese Datei auszuführen.
Der Shebang für mein Python-Skript lautet wie folgt:
#!/usr/bin/env python3
Dieses Skript funktioniert gut und wie erwartet in Terminal. Wenn ich jedoch versuche, dies mit AppleScript/Automator wie folgt zu automatisieren:
on run {input, parameters}
tell application "Terminal"
do shell script "/path/to/script.py $@"
end tell
return input
end run
Ich stoße auf Probleme, nämlich:
Terminal got an error: env: python3: No such file or directory
Ich habe hier unter anderem gelesen, dass AppleScript von Natur aus nur Zugriff auf Unix-Befehle zulässt und beispielsweise Ihr Bash-Profil nicht ausgibt (daher haben wir standardmäßig keinen Zugriff auf unseren $PATH). Ich hatte jedoch den Eindruck, dass die Bereitstellung expliziter Pfade eine Problemumgehung war.
Ich habe versucht, do shell
dies zu ändern:
do shell script "/usr/bin/python3 /path/to/script.py $@"
und ich habe versucht, den Shebang so zu ändern:
#!/usr/bin/env /usr/bin/python3
Aber nichts scheint zu funktionieren. Ist es einfach nicht möglich, ein Python 3-Skript über AppleScript auszuführen? Ich konnte bei meinen Recherchen keine praktikable Lösung finden.
Bearbeiten: Zusatzinfo:
$ type -a python3
python3 is /usr/local/bin/python3
Ich habe mein Problem gelöst, indem ich Folgendes geändert habe do shell
:
do shell script "/usr/local/bin/python3 /path/to/script.py $@"
und den Shebang bleiben lassen als:
#!/usr/bin/env python3
fd0
type -a python3
Bearbeiten Sie dann Ihren Beitrag mit dem Befehl und den Ergebnissen.Aidan H.
/usr/bin/python3
zu/usr/local/bin/python3
oder umgekehrt herstellen kann, um dieses Problem in der gesamten Umgebung zu vermeiden.mmmmmm
Aidan H.
/usr/bin/python3
so, dass ich ihn ohne Überprüfung verwendet habe.