NameError: name 'use' is not defined

Asked by Ryan K

I am a noob when it comes to programming so I did my best to figure this out:

I am using Sikuli to interface with Eclipse IDE to run some scripts within a jython file called "Ryancode". The file "Ryancode" is very long and I inherited "Ryancode" from another user who I cannot get ahold of.

Anyway, I am running the code below within Sikuli IDE:

from sikuli import *
import Ryancode

print("ryan")

tmpRegion = <screenshot of desktop with highlighted region for test purposes>

tmpRegion.highlight(2)

Ryancode.captureImage(none, 'ryan', tmpRegion)

print("done")

############################

The error message I get is below:

Exception in thread "Thread-32" Traceback (most recent call last):
    File "<string>", line 1, in <module>
NameError: name 'use' is not defined

############################

Is there a variable named 'use' within the Sikuli lib folder that is not defined? Is there a variable within "Ryancode" that is not defined? I am confused on what's happening. My main objective is to use the different functions within "Ryancode" to run regression tests on my system. ie. taking screenshots of different GUI's, CLI output to prove that the network is setup/running properly.

Question information

Language:
English Edit question
Status:
Expired
For:
SikuliX Edit question
Assignee:
No assignee Edit question
Last query:
Last reply:
Revision history for this message
Manfred Hampl (m-hampl) said :
#1

Do you really have
  from sikuli import #
or is it
  from sikuli import *
?

And at the end in
  print("done)
the ending quote is missing.

This example cannot work.

Revision history for this message
Ryan K (ronjonjonjon) said :
#2

Fixed that Manfred, they were typos.

Revision history for this message
Ryan K (ronjonjonjon) said :
#3

I am still having problems. Can someone assist please?

Revision history for this message
RaiMan (raimund-hocke) said :
#4

--- your code
from sikuli import *
import Ryancode
print("ryan")
tmpRegion = <screenshot of desktop with highlighted region for test purposes>
tmpRegion.highlight(2)

syntactically correct would be:
find(tmpRegion).highlight(2)
... but if this makes sense in this situation - I do not know ;-)

If tmpRegion really is a screenshot image, then
tmpRegion.highlight(2)

would report an error, that highlight is not defined for a string object.

hence your error happens earlier and the only reasonable place is Ryancode, since the module sikuli does not produce such an error (just check with a one-liner script).

Revision history for this message
Ryan K (ronjonjonjon) said :
#5

Thanks for responding RaiMan.

Switching gears... I talked with my SME.

I am currently running all my code within Eclipse,

Below is my code:

from sikuli import #
import Ryancode

print("ryan")

tmpRegion = Region(295, 329, 233, 178)
tmpRegion.highlight(2)

test.captureImage(None, 'ryan', tmpRegion)

print("done")

#################################################

I then get an error message:

ImportError: Ryancode.sikuli has no Ryancode.py

Can you explain this error? I've been having a hard time figuring it out.

Revision history for this message
RaiMan (raimund-hocke) said :
#6

again the typo
from sikuli import #
instead of
from sikuli import *

you should use copy&paste to put code here.

how to import Python stuff in SikuliX scripts look here:
https://sikulix-2014.readthedocs.io/en/latest/scenarios.html#access-python-packages-from-sikulix-scripts-run-by-sikulix-gui-or-commandline

Supposing you have got a Ryancode.py or even a Python module called Ryancode, than this is what you have to deal with according to the docs.

Another general option is to manipulate the Pythonpath, so it contains the location, where you have your Ryancode stuff.

All this is basic Python knowledge by the way.

Revision history for this message
RaiMan (raimund-hocke) said :
#7

no feedback