ubuntu中的Sikuli自动化

Sus*_*ush 1 ubuntu automation sikuli ubuntu-12.04

我试图在ubuntu 12.4中安装sikuli,遵循以下网站中提到的步骤

http://www.verious.com/tool/installing-sikuli-automation-tool-on-ubuntu-11-10/

java安装在ubuntu中

~$ java -version
java version "1.7.0_51"
Java(TM) SE Runtime Environment (build 1.7.0_51-b13)
Java HotSpot(TM) 64-Bit Server VM (build 24.51-b03, mixed mode)
Run Code Online (Sandbox Code Playgroud)

sikuli-ide成功加载,当我试图在屏幕上捕获图像时,我正在跟踪错误

Exception in thread "AWT-EventQueue-0" java.lang.UnsatisfiedLinkError: /home/ushusadmin/sikuli/Sikuli-IDE/libs/libVisionProxy.so: libml.so.2.1: cannot open shared object file: No such file or directory
at java.lang.ClassLoader$NativeLibrary.load(Native Method)
at java.lang.ClassLoader.loadLibrary1(ClassLoader.java:1965)
at java.lang.ClassLoader.loadLibrary0(ClassLoader.java:1890)
at java.lang.ClassLoader.loadLibrary(ClassLoader.java:1851)
at java.lang.Runtime.load0(Runtime.java:795)
at java.lang.System.load(System.java:1062)
at com.wapmx.nativeutils.jniloader.NativeLoader.loadLibrary(NativeLoader.java:44)
at org.sikuli.script.TextRecognizer.(TextRecognizer.java:24)
at org.sikuli.ide.NamingPane.getFilenameFromImage(NamingPane.java:55)
at org.sikuli.ide.CaptureButton.update(CaptureButton.java:149)
at org.sikuli.script.CapturePrompt.notifyObserver(CapturePrompt.java:44)
at org.sikuli.script.CapturePrompt$1.mouseReleased(CapturePrompt.java:197)
at java.awt.Component.processMouseEvent(Componen

t.java:6505)
at java.awt.Component.processEvent(Component.java:6270)
at java.awt.Container.processEvent(Container.java:2229)
at java.awt.Window.processEvent(Window.java:2022)
at java.awt.Component.dispatchEventImpl(Component.java:4861)
at java.awt.Container.dispatchEventImpl(Container.java:2287)
at java.awt.Window.dispatchEventImpl(Window.java:2719)
at java.awt.Component.dispatchEvent(Component.java:4687)
at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:735)
at java.awt.EventQueue.access$200(EventQueue.java:103)
at java.awt.EventQueue$3.run(EventQueue.java:694)
at java.awt.EventQueue$3.run(EventQueue.java:692)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:76)
at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:87)
at java.awt.EventQueue$4.run(EventQueue.java:708)
at java.awt.EventQueue$4.run(EventQueue.java:706)
at java.security.AccessController.doPrivileged(

Native Method)
at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:76)
at java.awt.EventQueue.dispatchEvent(EventQueue.java:705)
at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:242)
at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:161)
Run Code Online (Sandbox Code Playgroud)

我怎么能摆脱这个错误.我花了我的日子来纠正这个错误,真的厌倦了:-(专家pelase帮助我

Bil*_*gee 5

我在堆栈跟踪中注意到了这一点:

Exception in thread "AWT-EventQueue-0" java.lang.UnsatisfiedLinkError: /home/ushusadmin/sikuli/Sikuli-IDE/libs/libVisionProxy.so: libml.so.2.1: cannot open shared object file: No such file or directory

没有找到关于libml.so.2.1的投诉让我怀疑你有一个旧版本的Sikuli.

因此,我建议使用最新的Sikuli版本(1.0.1),并确保至少安装了OpenCV 2.4.0.

请注意,Sikuli 1.0.1依赖于OpenCV 2.4.0,而您链接的指南则来自2.3.0可接受的日期.

我会尝试删除2.3版本的libcv-dev软件包(如果这就是你所拥有的),而是从opencv2.4 PPA repo安装libcv-dev:

sudo add-apt-repository ppa:gijzelaar/opencv2.4
Run Code Online (Sandbox Code Playgroud)

另外,我注意到Sikuli人已经发布了一个特殊版本的libVisionProxy.so供下载; 不确定它是否有助于像你这样的系统,但如果使用Sikuli 1.0.1和OpenCV 2.4.0没有帮助,可能值得一试.

有问题的文件Sikuli-1.0.1-Supplemental-LinuxVisionProxy.zip位于https://launchpad.net/sikuli/+download

最后,如果它有帮助,这里是我用来在Ubuntu 12.04上启动和运行Sikuli 1.0.1的完整步骤:

  1. 安装Oracle JRE(我使用1.7.0_51,就像你的env一样)

  2. 安装OpenCV 2.4.0

    sudo add-apt-repository ppa:gijzelaar/opencv2.4
    
    sudo apt-get update
    
    sudo apt-get libcv-dev
    
    Run Code Online (Sandbox Code Playgroud)

    或者,您可以通过从源代码构建/安装OpenCV 2.4.0来实现相同的目标,步骤如下:

    http://karytech.blogspot.com/2012/05/opencv-24-on-ubuntu-1204.html

    注意当我尝试这个时,我省略了安装QT包的步骤,并在构建OpenCV时从我的cmake命令中删除了"-D WITH_QT = ON".

  3. 安装Tesseract 3:

    sudo apt-get install libtesseract3

  4. 下载sikuli-setup.jar并将其保存到〜/ SikuliX

  5. 启动sikuli-setup.jar并将Sikuli安装到〜/ SikuliX

    cd ~/SikuliX && java -jar sikuli-setup.jar

    我选择了"Pack 1"选项,让设置正常进行.

  6. 在IDE中创建一个Sikuli脚本并运行它.

    另外,我发现使用"runIDE -r"选项运行.sikuli项目非常有助于解决依赖性问题; 与在IDE中运行脚本相比,这似乎导致了有关错误的更多信息.例如:

    ~/SikuliX/runIDE -r foo.sikuli

以下是我的操作系统和JRE环境详细信息:

$ lsb_release -a
No LSB modules are available.
Distributor ID: Ubuntu
Description:    Ubuntu 12.04.3 LTS
Release:    12.04
Codename:   precise

$ java -version
java version "1.7.0_51"
Java(TM) SE Runtime Environment (build 1.7.0_51-b13)
Java HotSpot(TM) 64-Bit Server VM (build 24.51-b03, mixed mode)
Run Code Online (Sandbox Code Playgroud)