Search code examples
python-2.7orange

name from Orange is not defined


I've setup Orange and tried to execute this code in PythonWin

And got error on 2nd line

Was my setup of Orange incomplete or it's something else?

>>> from Orange.data import *
>>> color = DiscreteVariable("color", values=["orange", "green", "yellow"])
Traceback (most recent call last):
  File "<interactive input>", line 1, in <module>
NameError: name 'DiscreteVariable' is not defined

Solution

  • I'm not sure what the guy in the blog post is doing, or maybe there are some other steps that he explained in previous blog posts, but this code 'as is' is not going to work.

    I searched the source code for Orange, and DiscreteVariable isn't mentioned anywhere, not as class, not as regular word, nothing.

    What I did find however is

    Discrete = core.EnumVariable
    

    in Orange/feature/__init__.py. As you can see this points to core.EnumVariable, which appears, looking at it's usage:

    orange.EnumVariable('color', values = ["green", "red"])\
    

    to be the same as DiscreteVariable in your link.

    So I suggest you use from Orange.feature import Discrete instead and use that.