Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/302.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 将jython解释器设置为PyDev_Python_Eclipse Rcp_Jython_Pydev_Interpreter - Fatal编程技术网

Python 将jython解释器设置为PyDev

Python 将jython解释器设置为PyDev,python,eclipse-rcp,jython,pydev,interpreter,Python,Eclipse Rcp,Jython,Pydev,Interpreter,我们正在开发一个RCP应用程序,该应用程序应该能够调试/运行jython脚本。这些脚本包含我们的特定注释,因此我们需要创建自己的PythonInterpreter实例,并将其配置为支持我们的模块和处理程序。 我们正试图将PyDev集成到我们的应用程序中,以便获得调试器、编辑器等等,但在尝试将我们自己的jython解释器对象设置为PyDev时遇到了问题 这应该怎么做 通过一些调查,我们可以看到解释器管理器需要可执行文件(jython或python)。是否可以将我们的对象设置为PyDev,或者扩展P

我们正在开发一个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"
解释器知道@annotated函数将在某些事件发生时执行。当解释器被实例化时,我们还需要添加带有一些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.interprevers.JythonInterpreterManager
配置您自己的jython解释器,并根据需要通过
org.python.pydev.ui.interprevers.abstractTranspremanager.setInfos>进行配置(iInterpretrinfo[],Set,IProgressMonitor)
方法。

我们已经尝试过这个方法(类似于),但是在设置解释器时遇到了一些问题,因为我们试图设置jython standalone jar而不是可执行文件(我们没有可执行文件)。我不知道如何让PyDev意识到它应该使用我们正在实例化的Pythonterpreter对象,或者用我们自己的模块和处理程序扩展PyDev的Pythonterpreter对象。我没有完全理解你的意思…哪些问题?另外,jython总是设置为.jar,而不是可执行的,所以,我不知道什么不起作用,也不知道什么你指的是你自己的模块和处理程序吗?我将用更详细的解释来扩展描述。