> I have the same problem, but I am calling a Classifier from inside a
> function.
>
> ############ CODE ##################
>
> from weka.classifiers import Classifier, PredictionOutput
> import weka.core.jvm as jvm
>
> from weka.core.converters import Loader
> from weka.classifiers import Evaluation
>
>
> jvm.start(class_path=['C:\Users\Sethuraman\Anaconda2\Lib\site-packages\python_weka_wrapper3-0.1.0-py2.7.egg\weka\lib\python-weka-wrapper.jar','C:\Users\Sethuraman\Anaconda2\Lib\site-packages\python_weka_wrapper3-0.1.0-py2.7.egg\weka\lib\weka.jar'],
> packages=True)
Why are you adding the jar files manually? They get detected
automatically. See comments below.
> loader = Loader(classname="weka.core.converters.ArffLoader")
> data = loader.load_file(".\Train_data\\train2200.arff")
> data.class_is_last()
>
> def model_regressor():
>
> # Weka
> # from weka.classifiers import Classifier
> print 'Welcome to Weka !'
> cls = Classifier(classname="weka.classifiers.trees.M5P",
> options=['-M','4.0'])
>
> cls.build_classifier(data)
>
> evaluation = Evaluation(data)
>
> return cls, evaluation
>
>
>
> ###### SOME MORE FUNCTIONS DEFINITIONS ####\
>
>
> jvm.stop()
>
> classifier, evaluation = model_regressor()
After stopping the JVM, you won't be able to access classifier/evaluation.
> ########### CODE END ##################
>
> ############# ERROR ###############
>
> C:\Users\Sethuraman\Anaconda2\python.exe
> C:/Users/Sethuraman/PycharmProjects/Test_printer/m_weka_dtr.py
> DEBUG:weka.core.jvm:Adding user-supplied
> classpath=C:\Users\Sethuraman\Anaconda2\Lib\site-packages\python_weka_wrapper3-0.1.0-py2.7.egg\weka\lib\python-weka-wrapper.jar
> DEBUG:weka.core.jvm:Adding user-supplied
> classpath=C:\Users\Sethuraman\Anaconda2\Lib\site-packages\python_weka_wrapper3-0.1.0-py2.7.egg\weka\lib\weka.jar
> DEBUG:weka.core.jvm:Adding bundled jars
> DEBUG:weka.core.jvm:Adding Weka packages
> DEBUG:weka.core.jvm:package_dir=C:\Users\Sethuraman\wekafiles\packages
> DEBUG:weka.core.jvm:Classpath=['C:\\Users\\Sethuraman\\Anaconda2\\lib\\site-packages\\javabridge-1.0.14-py2.7-win-amd64.egg\\javabridge\\jars\\rhino-1.7R4.jar',
> 'C:\\Users\\Sethuraman\\Anaconda2\\lib\\site-packages\\javabridge-1.0.14-py2.7-win-amd64.egg\\javabridge\\jars\\runnablequeue.jar',
> 'C:\\Users\\Sethuraman\\Anaconda2\\lib\\site-packages\\javabridge-1.0.14-py2.7-win-amd64.egg\\javabridge\\jars\\cpython.jar',
> 'C:\\Users\\Sethuraman\\Anaconda2\\Lib\\site-packages\\python_weka_wrapper3-0.1.0-py2.7.egg\\weka\\lib\\python-weka-wrapper.jar',
> 'C:\\Users\\Sethuraman\\Anaconda2\\Lib\\site-packages\\python_weka_wrapper3-0.1.0-py2.7.egg\\weka\\lib\\weka.jar',
> 'C:\\Users\\Sethuraman\\Anaconda2\\lib\\site-packages\\python_weka_wrapper-0.3.8-py2.7.egg\\weka\\lib\\python-weka-wrapper.jar',
> 'C:\\Users\\Sethuraman\\Anaconda2\\lib\\site-packages\\python_weka_wrapper-0.3.8-py2.7.egg\\weka\\lib\\weka.jar']
When you look at the classpath, you can see that you're mixing jars
from python-weka-wrapper and python-weka-wrapper3:
['C:\\Users\\Sethuraman\\Anaconda2\\lib\\site-packages\\javabridge-1.0.14-py2.7-win-amd64.egg\\javabridge\\jars\\rhino-1.7R4.jar',
'C:\\Users\\Sethuraman\\Anaconda2\\lib\\site-packages\\javabridge-1.0.14-py2.7-win-amd64.egg\\javabridge\\jars\\runnablequeue.jar',
'C:\\Users\\Sethuraman\\Anaconda2\\lib\\site-packages\\javabridge-1.0.14-py2.7-win-amd64.egg\\javabridge\\jars\\cpython.jar',
'C:\\Users\\Sethuraman\\Anaconda2\\Lib\\site-packages\\python_weka_wrapper3-0.1.0-py2.7.egg\\weka\\lib\\python-weka-wrapper.jar',
'C:\\Users\\Sethuraman\\Anaconda2\\Lib\\site-packages\\python_weka_wrapper3-0.1.0-py2.7.egg\\weka\\lib\\weka.jar',
'C:\\Users\\Sethuraman\\Anaconda2\\lib\\site-packages\\python_weka_wrapper-0.3.8-py2.7.egg\\weka\\lib\\python-weka-wrapper.jar',
'C:\\Users\\Sethuraman\\Anaconda2\\lib\\site-packages\\python_weka_wrapper-0.3.8-py2.7.egg\\weka\\lib\\weka.jar']
[...]
> "C:\Users\Sethuraman\Anaconda2\lib\site-packages\python_weka_wrapper-0.3.8-py2.7.egg\weka\classifiers.py",
> line 53, in __init__
[..]
From the error message, you're running the Python2.7 version of
python-weka-wrapper. Is that what you're trying to achieve? You seem
to have both versions installed. Which Python version is your program
in?