我正在尝试在Jython中使用Gephi Toolkit,但是遇到了问题。代码如下:
import sys
sys.path.append('gephi-toolkit.jar')
from org.openide.util import Lookup
import org.gephi.project.api.ProjectController as ProjectController
pc = Lookup.getDefault().lookup(ProjectController)
workspace = pc.newProject()
print "done."
它永远不会到达最后一行。而是给出以下错误:
Traceback (most recent call last):
File "standalone.py", line 9, in <module>
workspace = pc.newProject()
AttributeError: 'NoneType' object has no attribute 'newProject'
显然,“Lookup.getDefault()。lookup(ProjectController)”返回None。谁能告诉我为什么?我发现以下解决方法有效(绕过Lookup):
...
import org.gephi.project.impl.ProjectControllerImpl as ProjectControllerImpl
pc = ProjectControllerImpl()
workspace = pc.newProject()
我想更多地了解这个问题。感谢。
答案 0 :(得分:1)
我认为这是因为查找需要引用java类,而不是jython包装器
尝试这个,看看它是否适合你,对我来说,至少它返回一个org.gephi.project.impl.ProjectControllerImpl的实例
导入sys
来自org.openide.util import Lookup
import java.lang.Class
将org.gephi.project.api.ProjectController导入为ProjectController
pc = Lookup.getDefault()。lookup(java.lang.Class.forName(“org.gephi.project.api.ProjectController”))
打印(PC)
你应该看到像这样的东西使用调用(更改为安装gephi的地方)
设置CLASSPATH =%CLASSPATH%; C:\ java \ gephi-toolkit-0.7.2014-all \ gephi-toolkit.jar
jython.bat gephi_test.jy
C:\ jython2.5.2&gt; jython.bat gephi_test.jy
org.gephi.project.impl.ProjectControllerImpl@8ddb93