Поиск в Jython (и Gephi) - PullRequest
1 голос
/ 10 мая 2011

Я пытаюсь использовать Gephi Toolkit в Jython, но у меня проблемы с этим.Код ниже:

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.Кто-нибудь может сказать мне, почему?Я обнаружил, что работает следующий обходной путь (который обходит поиск):

...
import org.gephi.project.impl.ProjectControllerImpl as ProjectControllerImpl
pc = ProjectControllerImpl()
workspace = pc.newProject()

Я хотел бы узнать больше об этой проблеме.Благодаря.

1 Ответ

1 голос
/ 10 мая 2011

я думаю, это потому, что для поиска нужна ссылка на класс java, а не оболочка jython

попробуйте это и посмотрите, работает ли он для вас, для меня, по крайней мере, он возвращает экземпляр org.gephi.project.impl.ProjectControllerImpl

import sys

из org.openide.util import Lookup

import java.lang.Class

import org.gephi.project.api.ProjectController as ProjectController

pc = Lookup.getDefault (). lookup (java.lang.Class.forName ("org.gephi.project.api.ProjectController"))

print (pc)


вызвать с помощью (измените, где установлен ваш gephi)

set CLASSPATH =% CLASSPATH%; C: \ java\ gephi-toolkit-0.7.2014-all \ gephi-toolkit.jar

jython.bat gephi_test.jy

вы должны увидеть что-то вроде

C:\ jython2.5.2> jython.bat gephi_test.jy

org.gephi.project.impl.ProjectControllerImpl@8ddb93

...