2013-03-26 7 views
2

Sikuli (r930)에서 Python (2.7) 스크립트를 호출하고 스크립트의 변수를 사용하려고합니다. 다음은 파이썬 코드 :여러 모듈이 Sikuli에 포함 된 Python 스크립트를 가져 오는 방법

import sys 
import re 
import os 
import time 
from pywinauto import application 
from SendKeys import SendKeys 
from cStringIO import StringIO 


app=application.Application() 
app.connect_(path=r'C:\Program Files\myApp\myApp.exe') 

backup = sys.stdout 

sys.stdout = StringIO()  

app.dlg.print_control_identifiers() 

out = sys.stdout.getvalue() 

sys.stdout.close() # close the stream 
sys.stdout = backup # restore original stdout 

regex = re.compile(r'(\d{8}\s*\-\s*\d{8})') 
found = re.search(regex, out) 

print found.group(0) #pass this variable to Sikuli 

이 있기 때문에 내가 stdout을 캡처하고있어 Pywinauto'sprint_control_identifiers 메소드가 리턴 (안 문자열). 또한 GUI 응용 프로그램에서 해시 일련 번호가 필요하므로 Sikuli와 연결할 수 없으므로 Pywinauto를 사용해야합니다.

ImportError: no module named Pywinauto. 

내가 문서를 읽고, 나는 Sikuli (자이 썬) 파이썬 모듈과 스크립트를 포함 할 수 있다는 것을 알고 : 나는 Sikuli에서 execfile()를 호출 할 때 그러나, 나는 오류가 발생합니다. 게다가, 내가 부르고있는 외부 .py 파일은 독립적으로 실행될 때 성공적으로 실행됩니다. 누군가 내가 한 걸음도 놓쳤다 고 말할 수 있습니까? 내가 Sikuli에서 위의 평 파일을 호출하기 위해 사용하고

코드 :

aScript = 'c:\\getHash_serial.py' 
execfile(aScript) 
+2

Hi Suffa, PIL 모듈과 동일한 문제에 대해 읽어보십시오. - http://stackoverflow.com/questions/13488117/not-able-to-import-pil-in-sikuli?rq=1 – SWAPYAutomation

답변

1

는 데있어 당장의 문제는 자이 썬 모듈을 찾을 수 있다는 것입니다. 아마도 파이썬 아래에 설치했고, 모듈 경로를 공유하지 않았을 것입니다. JYTHONPATH 환경 변수를 설정하여이 문제를 해결할 수 있습니다.

그러나 Pywinauto는 원시 코드와 연결되며 이는 자이 썬에서 지원하지 않습니다.

subprocess module을 통해 자이 썬에서 일반 파이썬을 호출하면이 제한을 피할 수 있습니다.

관련 문제