在Python中导入sikuli模块时遇到问题,我使用RIDE运行Python脚本

1 投票
2 回答
2095 浏览
提问于 2025-04-17 16:20

我在使用sikuli和python的时候遇到了一些麻烦。每次通过RIDE(机器人框架的集成开发环境)运行python脚本时,我都无法导入sikuli的API。我尝试过把sikuli的路径添加到环境变量中,也把sikuli的库放在工作目录里,但问题依然存在。

我的Python和机器人框架的版本是:

Robot Framework 2.6.3(Python 2.7.2,运行在win32系统上)

[错误] 在文件'C:\Sanity_Automation\Work_Project\robot_suite\quick_run.txt'的'Settings'表中出现错误:导入测试库'C:\Sanity_Automation\Work_Project\TestCreator.py'失败:ImportError:没有名为sikuli.Sikuli的模块

PYTHONPATH: ['C:\Sanity_Automation\Python272\lib\site-packages\robot\libraries', 'C:\Windows\system32\python27.zip', 'C:\Sanity_Automation\Python272\DLLs', 'C:\Sanity_Automation\Python272\lib', 'C:\Sanity_Automation\Python272\lib\plat-win', 'C:\Sanity_Automation\Python272\lib\lib-tk', 'C:\Sanity_Automation\Python272', 'C:\Sanity_Automation\Python272\lib\site-packages', 'C:\Sanity_Automation\Python272\lib\site-packages\wx-2.8-msw-unicode', '.']

追踪记录(最近的调用在最前面):

文件"C:\Sanity_Automation\Python272\lib\site-packages\robot\utils\importing.py",第84行,在_non_dotted_import中

module = _import_module_by_path(name)

文件"C:\Sanity_Automation\Python272\lib\site-packages\robot\utils\importing.py",第38行,在_import_module_by_path中

module = __import__(modname)

文件"C:\Sanity_Automation\Work_Project\TestCreator.py",第1行,在

import ospf

文件"C:\Sanity_Automation\Work_Project\ospf.py",第1行,在

from sikuli.Sikuli import *

2 个回答

0

Sikuli 不能在 Python 解释器上运行,你只能使用 Jython。

1

要直接使用Sikuli,你需要用到robotframework的jython版本。不过,如果你因为依赖其他库而不能这样做,我自己在解决这个问题上做了一些工作——我创建了一个客户端/服务器库,这个库在服务器上用jython运行Sikuli,但客户端是纯Python的,可以用来构建你的测试业务对象。

我的最终目标是提供一个可以导入的库,这个库有足够的接口供大多数人使用,同时又有灵活的基础可以扩展——因为目前我知道的只有我一个人在用这个库,所以我不太确定里面应该放些什么最有用,但我会尽量提供支持。

现在我在工作中自己使用这个库来对一个Flash应用进行回归测试,虽然它还处于开发的早期阶段,但已经有了一定的实用性……

撰写回答