SikuliX1 icon indicating copy to clipboard operation
SikuliX1 copied to clipboard

Linux: problem with libopencv running SikuliX from Jython 2.7.3 (SikuliX on python.path)

Open Pierregvx opened this issue 2 years ago • 2 comments

I am on ubuntu using :

  • jython2.7.3
  • sikulixidelux-2.0.6
  • java : openjdk version "19.0.2" 2023-01-17 I tried to run a simple script from the following folder
├── image
│   └── firefox.png
└── run.py

here is run.py :

import org.sikuli.script.SikulixForJython
from sikuli import *
import org.sikuli.script.ImagePath
setBundlePath("image")
click()
type(Key.WIN)
click("firefox.png")

when I run /path/to/jython/bin/jython -Dpython.path=/path/to/sikulixidelux-2.0.6-20220817.114703-15.jar run.py I get this message error

Traceback (most recent call last):
  File "run.py", line 7, in <module>
    click("firefox.png")
        at java.base/java.lang.ClassLoader.loadLibrary(ClassLoader.java:2444)
        at java.base/java.lang.Runtime.loadLibrary0(Runtime.java:848)
        at java.base/java.lang.System.loadLibrary(System.java:2047)
        at org.sikuli.script.support.Commons.loadLib(Commons.java:1504)
        at org.sikuli.script.support.Commons.loadLibrary(Commons.java:1482)
        at org.sikuli.script.support.Commons.loadOpenCV(Commons.java:1436)
        at org.sikuli.script.Finder$Finder2.<clinit>(Finder.java:591)
        at org.sikuli.script.Finder$FindInput2.<clinit>(Finder.java:1072)
        at org.sikuli.script.Finder.<init>(Finder.java:24)
        at org.sikuli.script.Finder.<init>(Finder.java:68)
        at org.sikuli.script.Element.checkLastSeenAndCreateFinder(Element.java:976)
        at org.sikuli.script.Element.runFirstFinder(Element.java:934)
        at org.sikuli.script.Element.executeFind(Element.java:857)
        at org.sikuli.script.Region.wait(Region.java:2071)
        at org.sikuli.script.Region.wait(Region.java:2087)
        at org.sikuli.script.Region.getLocationFromTarget(Region.java:2299)
        at org.sikuli.script.Region.click(Region.java:2814)
        at org.sikuli.script.Region.click(Region.java:2790)
        at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:104)
        at java.base/java.lang.reflect.Method.invoke(Method.java:578)
java.lang.UnsatisfiedLinkError: java.lang.UnsatisfiedLinkError: no libopencv_java454.so in java.library.path: :/home/pierre/Downloads/opencv-4.5.4/build/lib/:/usr/java/packages/lib:/usr/lib64:/lib64:/lib:/usr/lib

I installed libopencv_java454.so and added it to the path but I still got the same error

Pierregvx avatar Mar 07 '23 15:03 Pierregvx

by running strace -o strace.txt -f -e openat,stat /path/to/jython/bin/jython -Dpython.path=/path/to/sikulixidelux-2.0.6-20220817.114703-15.jar run.py I figured that the only right call for the libopencv file was in ./Simulix/SimulixLibs so I copied the library in this folder and it is now working

Pierregvx avatar Mar 08 '23 09:03 Pierregvx

I have to check.

RaiMan avatar Mar 08 '23 17:03 RaiMan