我想從Sikuli(r930)調用Python(2.7)腳本並使用腳本中的變量。下面是Python代碼:我怎樣才能導入一個Python腳本包含到Sikuli幾個模塊
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
方法返回(不是一個字符串)。另外,我需要使用Sikuli無法獲得的GUI應用程序中的哈希序列號,因此需要使用Pywinauto。然而,當我嘗試調用execfile()
從Sikuli,我得到的錯誤:
ImportError: no module named Pywinauto.
我閱讀文檔,我知道Sikuli(Jython的)可以包括Python模塊和腳本。此外,我調用的外部.py文件在獨立運行時運行成功。有人能告訴我,如果我錯過了一步嗎?我使用調用從Sikuli上面顯示的.py文件
代碼:
aScript = 'c:\\getHash_serial.py'
execfile(aScript)
嗨Suffa,請閱讀與PIL模塊相同的問題 - http://stackoverflow.com/questions/13488117/not-able-to-import-pil-in-sikuli?rq=1 – SWAPYAutomation 2013-03-27 13:31:15