2013-08-05 64 views
0

我,對我的一些儀器的自動數據採集的計算機上運行Sikuli腳本。我最近安裝了PyVisa,我可以使用python連接並與我的儀器進行通信,沒有任何問題。有沒有辦法可以在sikuli中導入Visa模塊,並用它與我的儀器進行通信,就像我在Python中一樣?導入的Python模塊Pyvisa在Sikuli

回答

0

Sikuli使用Jython的運行。純Python代碼將(幾乎總是)正常工作,但具有本機C代碼的Python代碼將無法工作。我不熟悉PyVISA,但它看起來像純Python,所以我會試試看。

你需要把PyVISA的地方,Jython的樣子。看看Jython documentation

0

我試圖導入一個Python庫:jenkinsapi到Jython的Sikuli環境。經過多次嘗試將二者結合起來,我想出了介入的最佳解決方案如下:

從你Sikuli編輯器導入操作系統中,並定義運行你不能導入的Jython代碼的功能。

import os 

def installBuild(): 
    os.system("C:\\Users\\time\\Desktop\\FDSmokeTest\\fdoc_build.py") 

Python是能夠訪問jenkinsapi但Jython是無法,創建一個簡單的Python文件,然後讓你的Sikuli Jython代碼執行系統調用來運行Python的。

from jenkinsapi.jenkins import * 
import os 
import unittest 
import sys 
from subprocess import call 

def getSCMInfroFromLatestGoodBuild(url, jobName, username=None, password=None): 
    print "Getting Latest Good Build: http://addresstoourjenkins.com:9087 Job: Daily_Windows" 
    J = Jenkins(url, username, password) 
    job = J[jobName] 
    lgb = job.get_last_good_build() 
    print "Latest Good Daily Windows Build: " + str(lgb) 
    return lgb 

def installBuild(buildnum): 
    print "Installing " + buildnum + " wait a few minutes while installation completes" 
    os.system("C:\Users\time\Desktop\FDSmokeTest\install.bat " + buildnum) 

if __name__ == '__main__': 
    temp = getSCMInfroFromLatestGoodBuild('http://addresstoourjenkins.com:9087', 'Daily_Windows') 
    buildnum=str(temp).replace('Daily_Windows ', '') 
    installBuild(buildnum)