Python3 파일을 실행할 때 AppleScript 오류 1721이 발생합니다.


2

파이썬 3 스크립트를 실행하도록 AppleScript를 만들려고합니다.

on run {input, parameters}
    tell application "Terminal"
        do shell script "/usr/local/bin/python3 /Users/UserName/Desktop/PyHello.py $@"
    end tell
    return input
end run

하지만 난 여전히 1721 오류가 있어요. 나는 명령 줄 명령을 변경뿐만 아니라 파일의 다른 유형을 시도 :

/usr/local/bin/python3 /Users/UserName/Desktop/PyHello.py $@

/python3 /Users/UserName/Desktop/PyHello.py $@"

두 명령 모두 :

/usr/local/bin/python3 /Users/UserName/Desktop/PyHello.py $@

/python3 /Users/UserName/Desktop/PyHello.py $@"

터미널에서 직접 입력 할 때 확인을 실행하십시오.


나는 AppleScript / shellscript에 대한 전문가가 아니지만 대개는 필요하지 않습니다. tell 실행할 물건 do shell script 너는 단지 그것을한다.
Tetsujin

1
@ 테츠 진, FYI do shell script AppleScript가 내장되어 있으며 다음과 같은 맥락에서 실행됩니다. tell current application 다음과 같은 경우에만 명시 적으로 필요합니다. do shell script 다른 응용 프로그램 내에서 설정됩니다. tell 블록 오류가 발생하지 않도록하십시오. 즉, 일반적으로 치명적이지 않은 오류이므로 AppleScript는 tell current application 블록 . 터미널에 do script 명령 . 어쩌면 OP가 혼란스러워할지 모르지만 OP가 세부 사항이 부족하기 때문에 왜 그런지 확실히 말할 수는 없습니다.
user3439894

1
네가에서 뛰고있는 것을 본다. on run {input, parameters} 매니저 . Automator 또는 Script Editor에서이 작업을 수행하고 있습니까? 후자의 경우 오류가 발생하는 것입니다. 안 on run {input, parameters} 매니저 스크립트 편집기에서 실행되지 않습니다.
user3439894

당신은 "하지만 여전히 1721 오류가 발생했습니다"라고 말했습니다. 무엇이든지 메시지 와 더불어 오류 아니면 그냥 error "" number -1721?
user3439894

동일한 질문을 크로스 게시하는 대신 stackoverflow.com/questions/47960937/... 의견에서 물어 본 질문에 대한 답변을 제공하십시오. 참고 : 네가에서 뛰고있는 것을 본다. on run {input, parameters} 매니저 . Automator 또는 Script Editor에서이 작업을 수행하고 있습니까? 당신은 "하지만 여전히 1721 오류가 발생했습니다"라고 말했습니다. 거기에 메시지가 있습니까? 오류 아니면 그냥 error "" number -1721? 적절한 문제 해결을 위해 문제를 해결하십시오. 여러 SE 사이트로 게시물을 교차하지 마십시오.
user3439894

답변:


2

고맙습니다 user3439894 귀하의 대답을 바탕으로 문제를 파악할 수있었습니다.

그것이 AppleScript의 올바른 스크립트입니다.

tell application "Terminal"
    do shell script "/usr/local/bin/python3 /Users/UserName/Desktop/PyHello.py $@"
end tell

이 스크립트는 AppleScript를 실행하는 Automator 용입니다 :

on run {input, parameters}
    tell application "Terminal"
        do shell script "/usr/local/bin/python3 /Users/UserName/Desktop/PyHello.py $@"
    end tell
    return input
end run

또한 초기 파이썬 스크립트에서 shebang이 필요합니다 :

#!/usr/bin/env python3

1
AppleScript의 올바른 스크립트입니다. do shell script 명령 ~ 이내에 tell application "Terminal" 블록 , 그것은 터미널이 이해하지 못하는 적절한 사용법이 아닙니다. do shell script 명령 ! 실제로 치명적이지 않은 오류가 발생하고 AppleScript가 do shell script 명령 적절한 컨텍스트 내에서 tell current application 블록 . 다른 말로 표현하면 실용적인 이유가 없습니다. 부적절하고 코딩이 좋지 않습니다.
user3439894

당신은 필요하지 않으며 do shell script 명령 ~ 이내에 tell application "Terminal" 블록 ! 당신이 명령 터미널에서 AppleScript 또는 Automator와 AppleScript를 통해 산출 그런 다음 do script 명령 그다지 do shell script 명령 . 의 출력을 볼 필요가없는 경우 셸 명령 그런 다음 do shell script 명령 그 자체로는 tell 블록 그때 그 외 tell current application. 그것이 올바른 방법입니다.
user3439894
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.