在Sikuli导入Python Pyvisa模块

时间:2013-08-05 15:10:02

标签: python-2.7 sikuli visa

我在计算机上运行sikuli脚本,可以自动为我的某些乐器采集数据。我最近安装了PyVisa,我可以使用python连接并与我的乐器进行通信,没有任何问题。有没有办法可以在sikuli中导入Visa模块并使用它与我在python中的方式进行通信?

2 个答案:

答案 0 :(得分:0)

Sikuli使用Jython来运行。纯Python代码将(几乎总是)正常工作,但具有本机C代码的Python代码将无法工作。我不熟悉PyVISA,但它看起来像纯Python,所以我试试看。

你需要把PyVISA放在Jython看起来的地方。看看Jython documentation

答案 1 :(得分: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)