在jython中导入java类

时间:2015-12-25 10:37:09

标签: java python eclipse-mars jython-2.7

我在python中处理NLP。有一个NLP工具即Zemberek用于土耳其语。但它是用java编写的。所以我必须使用jython来导入这些类。我安装了jython 2.7。另外,我安装了Eclipse Mars作为Java的IDE。在Internet上,我发现以下链接在IDE中使用Jython。我按照链接中的说明安装了PyDev并正确配置了它。

http://www.jython.org/jythonbook/en/1.0/JythonIDE.html

import sys
import os

import java.lang.System.out
import java.util.Arrays
import java.util.List

zembereksourcedir = ?

sys.path.append(zembereksourcedir +'/jar/zemberek-tr-2.1.1.jar')
sys.path.append(zembereksourcedir +'/jar/zemberek-cekirdek-2.1.1.jar')

from net.zemberek.erisim import Zemberek
from net.zemberek.tr.yapi import TurkiyeTurkcesi

zemberek = Zemberek(TurkiyeTurkcesi())
for st in ["ebeni","ırz"]:
    kok = zemberek.kokBulucu().kokBul(st) # array(net.zemberek.yapi.Kok, [ev ISIM , evli ISIM ])
    print str(list(kok))
    k = str(list(kok)).split()[0][1:]
    print k

我试图运行的代码如上所示。(可以在以下链接https://gist.github.com/ferayebend/5331379中找到)但问题是,即使我正确指定了路径,它也会出错。

ImportError: No module named Zemberek

我正确地应用了这些步骤以创建项目,这也在上面的链接中进行了解释。但我仍然无法解决问题。任何帮助将非常感激。

1 个答案:

答案 0 :(得分:0)

不应将其添加到sys.path,而应将其添加为Jython Interpreter配置中的库(窗口>首选项> pydev>口译员> jython口译器>新jar / zip(s))或者如果它在项目的文件夹中,右键单击项目>属性> pydev - pythonpath>外部库>添加zip / jar / egg。

原因是只添加到sys.path不起作用,你还需要将这些jar添加到CLASSPATH中以便java / jython找到它(如果你在其中指定它,PyDev将为你做什么)正确的方式)。