Python 사용 사례 및/또는 일괄 처리 상황안녕하세요 팀!
저희는 일부 하이테크 고객과 Python 및 라이선스 준수(배치) 문제에 대한 질문을 접했는데, 저는 이를 내부 커뮤니티에서 공유하고 싶었습니다. 이 스레드가 제 질문에 대한 답변뿐만 아니라 여러분이 접한 추가 사용 사례(Python 및 배치)를 포함하는 토론으로 바뀌는 것을 보고 싶습니다.
참고: 저는 파이썬 전문가가 아닙니다!
1) Python을 사용하여 JMP 호출(JMP를 사용하여 Python 호출과 대조). 저희 고객은 이렇게 하기를 원합니다. 저는 실행 가능성을 보여주는 (JMP가 아닌) 자료를 온라인에서 몇 개 보았습니다.
A) Python이 JMP를 호출하는 허용 가능한 사용 사례가 있습니까? 저에게는 배치 상황처럼 들립니다.
이것이 배치 상황이라면, 누구든지 고객에게 제공할 수 있는 통조림 기술 응답을 가지고 있나요? @Jeff_Perkinson 이 "JMP는 이 사용 사례에 맞게 설계되거나 테스트되지 않았으므로 이런 방식으로 JMP를 사용하여 수행한 작업에 대한 보증을 제공할 수 없습니다"라고 말하는 것을 들었습니다(여기서 제가 잘못 표현했습니다, 죄송합니다, Jeff!).
2) JMP가 Pandas Python 라이브러리를 지원하나요? 2018년에 @IkjuShin 이 이에 대해 게시한 글을 봤는데, 여기에 추가 자료가 제작되었는지, 아니면 다른 SE가 이 질문을 접했는지 궁금합니다.
저는 JMP 스크립팅 가이드에서 이 예제를 발견했는데, 이를 통해 이것이 JMP/Python 통합자에게 실현 가능한 사용 사례가 될 것이라고 믿게 되었습니다.
3) 고객이 연속 실행을 위한 While 루프를 포함하는 JSL 스크립트를 만들고 싶어합니다. 스크립트는 본질적으로 JMP 실행에 전용된 컴퓨터에서 실행됩니다. 사용자는 스크립트 실행을 시작합니다(그리고 이론적으로는 종료합니다). 사용 사례에 대한 추가 세부 정보는 없지만 대화의 맥락을 감안하면 이 스크립트가 새 데이터에 대한 데이터베이스를 ping하고 보고서를 업데이트한다고 상상해 보세요.
A) 이는 데스크톱 라이선스 계약을 준수하는 것인가요?
이에 대한 테스트가 이루어졌나요? 그리고 이를 안정적으로 구현하는 데 있어 기술적 어려움은 무엇인가요?
긴 글이네요... 시청해 주시고, 기여해 주셔서 감사합니다!
Re: Python 사용 사례 및/또는 일괄 처리 상황고맙습니다, 마틴. 여기에는 좋은 내용이 많이 있는데, 그 중 일부는 제 수준을 넘습니다! 몇 번 더 읽어야 할 것 같습니다.
Re: Python 사용 사례 및/또는 일괄 처리 상황안녕 제프,
에이.
나는 이 PDF가 2009년부터 아주 좋은 참고 자료가 될 것이라고 생각합니다.https://www.lexjansen.com/nesug/nesug09/ap/AP09.pdf), 그것도 첨부했어요.
여기에는 일부 스크립팅 언어와 해당 호출이 참조됩니다.
COMPARE & CONTRAST
COM Syntax across scripting tools is more alike than different across: Tcl, Perl , Python, R, & VBScript. For example: Start up JMP, Open a Document, Launch a Platform, Run some JSL.
TCL:
package require tcom
set JMP [::tcom::ref createobject "JMP.Application"];
set JMPdoc [$JMP OpenDocument {C:\Big Class.JMP}]
set oneway [$JMPdoc CreateOneway]
$JMP RunCommand "Distribution(
Perl:
use OLE;
use Win32::OLE;
$jmp = Win32::OLE->new('JMP.Application')
my $doc = $jmp->OpenDocument("C:\\Big class.jmp");
$doc -> CreateOneway
$jmp->RunCommand("Distribution(…
Python:
from win32com.client import Dispatch
jmp = Dispatch("JMP.Application")
doc = jmp.OpenDocument("C:/Big class.jmp")
doc.CreateOneway
jmp.RunCommand("Distribution(…
R:
library(rcom)
jmp <- comCreateObject("JMP.Application")
bigclass <- comInvoke(jmp, "OpenDocument", "C:\\Big Class.jmp")
oneway <- comInvoke(bigclass, "CreateOneway")
comInvoke(jmp, "RunCommand",…
VBscript:
set jmp = Wscript.CreateObject("JMP.Application")
set jmpdoc = jmp.OpenDocument("C:/Big class.jmp")
Set Oneway = JMPDoc.CreateOneway
jmp.RunCommand("Distribution(…
비.
이것도 관련이 있는 것 같습니다(파이썬 페이지에서): https://stackoverflow.com/questions/17931476/how-to-call-a-jsl-script-from-python-script
맥에서는 다음과 같이 언급되었습니다:
import os
os.system('open /Applications/JMP\ Pro\ 13.app/Contents/MacOS/JMP /path/filename.jsl')
경로/실행 파일과 경로/이름 사이에 공백이 있습니다.
JSL에서 첫 번째 줄에 //!만 있는지 확인하세요. 이렇게 하면 스크립트가 열릴 때 자동으로 실행됩니다. 또한 마지막 줄에 quit();를 사용하면 열린 JMP 인스턴스가 닫힙니다.
또한 참고: 시스템 환경에서 jmp.exe를 사용할 수 있는지 확인하여 명령줄에 "jmp.exe"를 입력하면 jmp가 실행되도록 합니다. 그런 다음 *.jsl을 준비합니다. 파이썬 프로세스를 사용하여 이 명령 "jmp.exe *.jsl"을 실행하면 jmp가 열리고 *.jsl 스크립트가 실행되고 jmp에서 생성한 모든 것을 파이썬으로 다시 가져올 수 있습니다.
그리고 Python에서 다른 앱을 호출하는 것에 관해 이야기하는 또 다른 Python 스레드가 있습니다: https://stackoverflow.com/questions/247724/how-can-i-launch-an-instance-of-an-application-using-python
또한 이 커뮤니티 스레드도 흥미로울 수 있습니다: https://community.jmp.com/t5/Discussions/jsl-Script-call-from-Python/mp/206295#M41799
기음.
마지막으로 자동화 참조 (http://www.jmp.com/support/downloads/pdf/jmp1001/automation_reference.pdf) 는 OLE 자동화를 사용하는 방법을 보여줍니다. 또는 http://www.jmp.com/support/downloads/pdf/vb_automation_reference.pdf
아직 시도해보지 않았고, 제 고객 기반에서 누군가를 본 적도 없습니다. 지금까지 본 것은 JMP에서 모델을 빌드하고 최종 모델을 파이썬 스크립트로 변환하여 파이썬 기반 웹 인터페이스에서 사용하는 사용 사례입니다. 사용 사례는 새로운 프로젝트를 위한 자동차 환경에서의 리소스 계획이었습니다. 이 모델은 프로젝트 리더의 권장 사항보다 훨씬 더 잘 작동했습니다. 그러나 다른 사람들이 빌드 모델에 의존할 수 있다면 JMP Pro가 필요한 사용자 수도 줄어들 수 있습니다. 하지만 분석 그룹이 있는 고객이 있다면 항상 가능합니다 