Поиск в Jython (и Gephi)
Я пытаюсь использовать 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 ответ
Я думаю, это потому, что для поиска нужна ссылка на класс java, а не оболочка jython
попробуйте это и посмотрите, работает ли он для вас, для меня по крайней мере он возвращает экземпляр org.gephi.project.impl.ProjectControllerImpl
импорт системы
из org.openide.util import Lookup
импорт java.lang.Class
импортировать org.gephi.project.api.ProjectController как ProjectController
pc = Lookup.getDefault (). lookup (java.lang.Class.forName ("org.gephi.project.api.ProjectController"))
печать (шт)
вызвать с помощью (изменить, где установлен ваш Gephi)
установить 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