我們正在開發一個應該調試/運行jython腳本的RCP應用程序。這些腳本包含我們特定的註釋,所以我們需要創建自己的PythonInterpreter實例並將其配置爲支持我們的模塊和處理程序。 我們正在嘗試將PyDev集成到我們的應用程序中,以便獲得調試器,編輯器以及其他內容,但在嘗試將我們自己的jython解釋器對象設置爲PyDev時遇到問題。將jython解釋器設置爲PyDev
這應該怎麼做?
從一些調查中我們可以看到解釋器管理器需要可執行文件(jython或python)。是否有可能以某種方式將我們的對象設置爲PyDev或以某種方式擴展PyDev的解釋器對象並添加我們的處理程序和模塊?
編輯:
所以,我們遇到的問題是,當我們試圖以編程方式設置Jython的罐子爲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編輯器中打開時,會創建一個新的解釋器實例。有什麼辦法可以在我們的代碼中獲得這個解釋器對象並操縱它?
我們試過這個(類似於https://stackoverflow.com/questions/10587681/adding-python-interpreters-programmatically),雖然我們在設置我們的解釋器時遇到了一些問題,因爲我們試圖設置jython獨立jar而不是的可執行文件(我們沒有我們的可執行文件)。我不知道如何讓PyDev知道它應該使用我們正在實例化的PythonInterpreter對象,或者使用我們自己的模塊和處理程序來擴展PyDev的PythonInterpreter對象。 –
我並沒有完全明白你的意思......哪些問題?另外,jython總是被設置爲.jar,而不是可執行文件,所以,我不明白你的模塊和處理程序無法正常工作,也不知道你是什麼意思。 –
我會用更詳細的解釋來擴展描述。 –