【发布时间】:2017-06-05 07:56:57
【问题描述】:
我们正在开发一个用于调试/运行 jython 脚本的 RCP 应用程序。这些脚本包含我们特定的注释,因此我们需要创建自己的 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());
}
因此,要做到这一点,我们需要随时使用解释器对象。我们注意到,当 .py 文件在 pydev 编辑器中打开时,会创建一个新的解释器实例。有什么方法可以在我们的代码中获取这个解释器对象并对其进行操作?
【问题讨论】:
标签: python eclipse-rcp jython pydev interpreter