X 1.0rc1 Windows: second import corrupts image search path - workaround

Bug #697355 reported by joe fu
16
This bug affects 3 people
Affects Status Importance Assigned to Milestone
SikuliX
Fix Released
Critical
RaiMan

Bug Description

****** this happens
--- only one import works fine
--- after adding another import, things contained in first import make problems now and things from second import do not function at all

************************************ see workaround below

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 *

Tags: fkt-import
RaiMan (raimund-hocke)
summary: - cannot import multiple image libraries in sikuli
+ cannot import multiple image libraries in Sikuli X
summary: - cannot import multiple image libraries in Sikuli X
+ Windows: cannot import multiple image libraries in Sikuli X
Revision history for this message
RaiMan (raimund-hocke) wrote : 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.

Changed in sikuli:
milestone: none → x1.0-rc2
RaiMan (raimund-hocke)
Changed in sikuli:
status: New → Fix Committed
RaiMan (raimund-hocke)
summary: - Windows: cannot import multiple image libraries in Sikuli X
+ X 1.0rc1 Windows: cannot import multiple image libraries in Sikuli X
RaiMan (raimund-hocke)
summary: - X 1.0rc1 Windows: cannot import multiple image libraries in Sikuli X
+ X 1.0rc1 Windows: multiple import corrupts image search path -
+ workaround
RaiMan (raimund-hocke)
description: updated
RaiMan (raimund-hocke)
summary: - X 1.0rc1 Windows: multiple import corrupts image search path -
- workaround
+ X 1.0rc1 Windows: second import corrupts image search path - workaround
RaiMan (raimund-hocke)
Changed in sikuli:
assignee: nobody → RaiMan (raimund-hocke)
milestone: x1.0-rc2 → x1.0
importance: Undecided → Low
RaiMan (raimund-hocke)
tags: added: fkt-import
RaiMan (raimund-hocke)
Changed in sikuli:
importance: Low → High
RaiMan (raimund-hocke)
Changed in sikuli:
importance: High → Critical
RaiMan (raimund-hocke)
Changed in sikuli:
status: Fix Committed → Fix Released
To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.