繁体   English   中英

将jython解释器设置为PyDev

[英]Setting jython interpreter to PyDev

我们正在开发一个RCP应用程序,该应用程序应该调试/运行jython脚本。 这些脚本包含特定的注释,因此我们需要创建自己的PythonInterpreter实例并将其配置为支持我们的模块和处理程序。 我们正在尝试将PyDev集成到我们的应用程序中,以便获得调试器,编辑器等,但是在尝试将自己的jython解释器对象设置为PyDev时遇到了问题。

应该怎么做?

通过一些调查,我们可以看到解释器管理器需要可执行文件(jython或python)。 是否有可能以某种方式将我们的对象设置为PyDev或以某种方式扩展PyDev的解释器对象并添加我们的处理程序和模块?

编辑:

因此,我们遇到的问题是,当我们尝试以编程方式将jython jar设置为jython解释器时,我们遇到了错误,因为它没有主类并且不能被视为解释器。 我们所做的是,找到了不会引起我们这些问题的合适的jython独立jar。 通过设置模块和处理程序,意味着我们可以通过编程方式扩展jython脚本功能,以具有解释器可以识别的一些注释。 例如,如果我们有python代码:

@valueChangeHandler(context.controls.Blank.button_0)
def ASP1_configurePanelSettings(event):
    print "Stuff happend"

解释器知道在某些事件发生时将执行@注释的函数。 实例化解释器时,我们还需要添加带有一些jar文件的库。 例如:

interpreter.exec("import sys");
if (modulePaths != null && modulePaths.length > 0)
{
    final StringBuilder imports = new StringBuilder();
    for (final String modulePath : modulePaths)
        imports.append("\nsys.path.append('" + modulePath + "')");
    interpreter.exec(imports.toString());
}

因此,为此,我们需要随时使用解释器对象。 我们注意到,在pydev编辑器中打开.py文件时,将创建一个新的解释器实例。 有什么办法可以在代码中获取并解释该解释器对象?

您应该能够通过org.python.pydev.ui.interpreters.JythonInterpreterManager配置自己的jython解释器,并根据需要通过org.python.pydev.ui.interpreters.AbstractInterpreterManager.setInfos(IInterpreterInfo[], Set<String>, IProgressMonitor)方法。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM