Mac에서 유닉스 "which" 명령어로 프로그램 실행Run Program() 명령을 사용하여 유닉스 명령어 "/usr/bin/which -a Python3"을 실행하려고 합니다. 아직 배우는 단계라 답변이 뻔하게 들린다면 죄송합니다. 참고로, 저는 MacOS Sonoma 14.7.1에서 JMP Pro 17.2를 실행하고 있습니다. Mac의 경우 PC와 미묘한 구문 차이가 있는 것 같으니 주의하시는 것이 좋습니다.
시도 1(Run Program이 작동하는지 확인):
RP = Run Program(
Executable("/usr/bin/which"),
Options({"Python3"}), //No "-a" modifier
readFunction("text")
);
오류는 발생하지 않지만 Python3 인스턴스 하나만 반환됩니다("/usr/bin/Python3"). 사용자 컴퓨터에서 Python3의 모든 인스턴스를 찾고 있습니다. 하지만 적어도 Run Program 함수가 제대로 작동한다는 것을 보여줍니다.
시도 2("-a" 수정자 추가):
RP = Run Program(
Executable("/usr/bin/which"),
Options({"-a Python3"}),
readFunction("text")
);
실패하고 다음이 반환됩니다.
"/usr/bin/which: illegal option --
usage: which [-as] program ...
"
시도 3(약간 다른 구문 사용):
RP = Run Program(
Executable("/usr/bin/which"),
Options({"-a", "Python3"}), //"-a" is now a separate list item
readFunction("text")
);
이 명령은 실패하지 않지만 첫 번째 시도와 동일한 결과를 반환합니다(마치 "-a" 수정자가 없는 것처럼).
시도 4(bash 스크립트를 만들고 그 안에서 'which' 명령을 실행합니다):
간단한 텍스트 파일을 만들어 바탕 화면에 저장했습니다.
#!/bin/bash
/usr/bin/which -a python3
그런 다음 JMP에서 다음을 실행했습니다.
</CODE><CODE class=" language-jsl">RP = Run Program(
Executable("/bin/sh"),
Options({"/Users/stefannikles/Desktop/usrbinwhich.txt"}),
readFunction("text")
);
오류는 반환되지 않고 ""만 반환되었습니다.
다른 방법도 여러 가지 시도해 봤지만 효과가 없는 것 같습니다. 조언해 주실 수 있는 분 계시면 감사하겠습니다. 감사합니다.
자동화 및 스크립팅맥OSRe: "프로그램 실행" 사용에 대한 도움말#3은 Mac에서는 올바른 방법입니다. Windows에서는 #2도 작동합니다. JMP는 어떤 버전인가요? 최신 버전의 JMP가 Python 내부 버전을 원활하게 하는 역할을 할 것 같은데, 그 과정에서 부작용이 발생할 수도 있습니다. @폴_넬슨
#4 아마도 bin/sh가 -a 매개변수를 지원하는 셸이 아닐 수도 있나요?
Re: "프로그램 실행" 사용에 대한 도움말크레이그, 고마워요. #3은 제게는 작동하지 않아요. 궁금한 게 있는데, Mac에서 #3이 작동하는지 확인해 보셨나요? Python 인스턴스가 4개 있는 사용자 컴퓨터에서 시도해 봤는데 Python 경로가 하나만 반환되었습니다. 제 컴퓨터에서도 같은 결과가 나왔습니다. MacOS Sonoma 14.7.1에서 JMP Pro 17.2를 실행하고 있습니다. JMP 18에는 Python이 내장되어 있다고 들었는데, 저희 회사에서는 아직 17.2를 사용하고 있습니다.
Re: "프로그램 실행" 사용에 대한 도움말Mac이 없네요. 죄송합니다. Linux에서는 출력을 보기 위해 -a 옵션을 실행했습니다. Mac에서는 3에서처럼 매개변수를 분할해야 합니다. Win에서는 생성된 명령줄에서 다시 구문 분석되지만, Mac에서는 그렇지 않습니다.
Re: "프로그램 실행" 사용에 대한 도움말/usr/bin/python3은 macOS에서 사용하도록 macOS에 포함된 파일입니다. 현재 Python 버전은 아니지만, 프로그램에서 반환되는 유일한 파일입니다. 모든 Python.org 설치는 /Library/Frameworks/Python.framework에 저장됩니다.
내 macOS Sonoma 14.7.5에는 Python 3.10, 3.11, 3.12, 3.13이 설치되어 있습니다( /usr/bin/python3은 3.9.6입니다)
-rwxr-xr-x 77 루트 바퀴 119008 3월 19일 15:20 /usr/bin/python3*
me@my_machine ~ % 파일 /usr/bin/pyth
/usr/bin/python3: 2가지 아키텍처를 갖춘 Mach-O 범용 바이너리: [x86_64:Mach-O 64비트 실행 파일 x86_64] [arm64e:Mach-O 64비트 실행 파일 arm64e]
/usr/bin/python3(x86_64 아키텍처용): Mach-O 64비트 실행 파일 x86_64
/usr/bin/python3(arm64e 아키텍처용): Mach-O 64비트 실행 파일 arm64e
나@내_머신 ~ % /usr/bin/python3
Python 3.9.6(기본, Oct) 4 2024, 08:01:31)
[Clang 16.0.0 (clang-1600.0.26.4)] darwin에서
자세한 내용을 보려면 "도움말", "저작권", "크레딧" 또는 "라이선스"를 입력하세요.
>>> ^디
나@내_머신 ~ % ls -l /라이브러리/프레임워크/Python.framework/버전
총 0개
드루x르wxr-x 12루트 관리자 384 4월 17일 10:29 3.10/
드루엑스알-엑스알-엑스 10 나 직원 320 4월 10일 15:35 3.11/
드루x르wxr-x 11 루트 관리자 352 4월 17일 10:31 3.12/
drwxrwxr-x@ 12 루트 관리자 384 4월 8 16:26 3.13/
lrwxr-xr-x 1개의 뿌리 바퀴 2017년 4월 4일 10:31 현재 -> 3.12
마지막으로 설치된 Python은 Current에서 가리키는 것이고, Python 3.12에 대한 최신 바이너리 업데이트를 설치했습니다.
JMP 18에는 Python 3.11.x가 내장되어 있습니다. JMP 18.2.1 릴리스는 Python 3.11.12 보안 업데이트로 업데이트되었습니다. JMP 19 EA는 최신 Python 3.13.x와 함께 설치됩니다.
적합한 Python 버전에 대한 참고 사항: JMP는 Anaconda Python 연결을 지원하지 않으며, Python.org Python만 지원합니다. JMP 18 및 JMP 19에서는 JMP에서 제공하는 Python만 JMP에서 작동합니다. 하지만 JMP를 실행하면 바로 Python이 작동합니다. JMP 18 이상에서는 Python 스크립트 편집기와 JSL 스크립트 편집기를 제공하며, Python 코드는 데이터 테이블에 접근하고 Python에서 JSL을 호출할 수 있습니다. 이제 JSL에서 Python을 호출할 수 있는 것과 마찬가지입니다. Mac에서 JMP 17은 Python Init()을 사용하여 /Library/Frameworks/Python.framework에서 현재 Python을 찾습니다.