【发布时间】:2013-08-06 08:39:39
【问题描述】:
我正在一台计算机上运行 sikuli 脚本,它可以自动为我的某些仪器采集数据。我最近安装了 PyVisa,我可以使用 python 与我的仪器连接和通信,没有任何问题。有没有办法可以在 sikuli 中导入 Visa 模块并使用它与我的仪器进行通信,就像在 python 中一样?
【问题讨论】:
标签: python-2.7 sikuli visa
我正在一台计算机上运行 sikuli 脚本,它可以自动为我的某些仪器采集数据。我最近安装了 PyVisa,我可以使用 python 与我的仪器连接和通信,没有任何问题。有没有办法可以在 sikuli 中导入 Visa 模块并使用它与我的仪器进行通信,就像在 python 中一样?
【问题讨论】:
标签: python-2.7 sikuli visa
Sikuli 使用 Jython 运行。纯 Python 代码将(几乎总是)正常工作,但带有本机 C 代码的 Python 代码将无法工作。我对 PyVISA 不熟悉,但它看起来像纯 Python,所以我会尝试一下。
您需要将 PyVISA 放在 Jython 看起来的某个位置。看看Jython documentation。
【讨论】:
我试图将 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)
【讨论】: