簡體   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