← Back to team overview

sikuli-driver team mailing list archive

[Bug 697355] Re: Windows: cannot import multiple image libraries in Sikuli X

 

The internal handling of import .sikuli adds an entry to the internal
Image Path (accessible with getImagePath()).

On Windows its buggy and corrupts the last entry in the list
(getImagePath()[-1]) if at least one entry exists at time of import. So
currently the "images-are-found-automatically"-feature works only with
one import.

Using addImagePath() there is a temporary solution, that might help in
most cases:

do the following:

- make all your imports as if the problem was not there
this will leave the Image Path in the not usable way

- then (taking the example above) do the following:
if not projectImgsLabPath1+"\\imgs.sikuli\\" in getImagePath(): # to avoid double action in IDE
    removeImagePath(getImagePath()[0]) # removes the wrong entry, remove it if it makes problems
    addImagePath(projectImgsLabPath1+"\\imgs.sikuli")
    addImagePath(projectImgsLabPath2+"\\imgs_desktopDirector.sikuli"

the trailing \\ in the if is needed, since the internal logic adds it
with addImagePath()

I hope the approach is clear enough.

-- 
You received this bug notification because you are a member of Sikuli
Drivers, which is subscribed to Sikuli.
https://bugs.launchpad.net/bugs/697355

Title:
  Windows: cannot import multiple image libraries in Sikuli X

Status in Sikuli:
  New

Bug description:
  Hi, 

Sikuli-X provides the way to import another Sikuli script and image library into the main sikuli script. It only works on 1 image library importing. 
What if I want to import multiple  image libraries into the same sikuli script?

I've tried to do that, it won't work on the 2nd import, even it didn't complain anything. It just couldn't find the image and will time out.

I've tried to print out the image search path by getImagePath(), it looks like this, does it look right to you?

array(java.lang.String, [u'C:\\GUITest\\GUITest.sikuli\\objectData/imgs.sikuli:C:\\GUITest\\GUITest.sikuli\\projects\\DesktopDirector\\objectData/imgs_desktopDirector.sikuli\\'])

the 2nd imported images will not be recognized by Sikuli. But if I removed the 1st import, the 2nd import will work fine.

I'm using these codes to import the images from 2 libraries....

projectImgsLabPath1="C:\\GUITest\\GUITest.sikuli\\objectData"
if not projectImgsLabPath1 in sys.path: sys.path.append(projectImgsLabPath1)
from imgs import *

projectImgsLabPath2="C:\\GUITest\\GUITest.sikuli\\projects\\DesktopDirector\\objectData"
if not projectImgsLabPath2 in sys.path: sys.path.append(projectImgsLabPath2)
from imgs_desktopDirector import *





References