[英]Weka python wrapper Loader
I've installed weka python wrapper on Mc Os X 10.9.4. 我已经在Mc Os X 10.9.4上安装了weka python包装器。 And I tried running the sample code:
我尝试运行示例代码:
import weka.core.jvm as jvm
jvm.start()
from weka.core.converters import Loader
l = Loader("weka.core.converters.ArffLoader")
d = l.load_file("X.arff")
d.set_class_index(d.num_attributes() - 1)
print(d)
and I receive the following error: 并且收到以下错误:
Failed to get class weka/core/converters/ArffLoader
Exception in thread "Thread-2" java.lang.NoClassDefFoundError: weka/core/converters/ArffLoader
Failed to instantiate weka.core.converters.ArffLoader/weka/core/converters/ArffLoader: weka/core/converters/ArffLoader
Caused by: java.lang.ClassNotFoundException: weka.core.converters.ArffLoader
at java.net.URLClassLoader$1.run(URLClassLoader.java:202)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:190)
at java.lang.ClassLoader.loadClass(ClassLoader.java:306)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:301)
at java.lang.ClassLoader.loadClass(ClassLoader.java:247)
Traceback (most recent call last):
File "/Users/hani/Library/Enthought/Canopy_64bit/User/lib/python2.7/site-packages/IPython/core/interactiveshell.py", line 2883, in run_code
exec(code_obj, self.user_global_ns, self.user_ns)
File "<ipython-input-5-d835d9d560d2>", line 2, in <module>
l = Loader("weka.core.converters.ArffLoader")
File "/Users/hani/Library/Enthought/Canopy_64bit/User/lib/python2.7/site-packages/python_weka_wrapper-0.1.10-py2.7.egg/weka/core/converters.py", line 40, in __init__
self.enforce_type(jobject, "weka.core.converters.Loader")
File "/Users/hani/Library/Enthought/Canopy_64bit/User/lib/python2.7/site-packages/python_weka_wrapper-0.1.10-py2.7.egg/weka/core/classes.py", line 113, in enforce_type
raise TypeError("Object does not implement or subclass " + intf_or_class + "!")
TypeError: Object does not implement or subclass weka.core.converters.Loader!
After some tinkering I realized that setting the working directory to the python-weka-wrapper folder using os.chdir remedies the problem in some environments but not all of them (eg pycharm is not fixed using this trick). 经过一番修补后,我意识到使用os.chdir将工作目录设置为python-weka-wrapper文件夹可以解决某些环境中的问题,但并非全部解决(例如,使用此技巧无法修复pycharm)。 Any ideas how I can fix this issue?
有什么想法可以解决这个问题吗?
Apparently, calling jvm with the paths to weka jar files would solve the problem: 显然,使用具有weka jar文件路径的jvm可以解决问题:
jvm.start(class_path=['/some/where/python-weka-wrapper.jar',
'/some/where/weka.jar'])
Thanks to Peter Reutemann for this reply. 感谢Peter Reutemann的答复。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.