2012-05-14 70 views
2

是否有一種使用Pydev插件接口添加和更改解釋器的簡單方法?我正在運行pydev 1.6.1,我希望能夠根據我的環境中可用的解釋器列表添加和使用給定的解釋器。以編程方式添加python解釋器

現在我可以看到PythonInterpreterManager有一個createInterpreterInfo調用,但似乎沒有做任何事情。看看pydev的來源,似乎我必須實際使用首選項頁面來跟蹤所有這些頁面。

有沒有更簡單的函數可以調用來添加這些?

PythonInterpreterManager manager = (PythonInterpreterManager)PydevPlugin.getPythonInterpreterManager(true); 
IInterpreterInfo info = manager.createInterpreterInfo(execPath, new NullProgressMonitor()); 
     manager.addInterpreterInfo(info); 

我已經可以執行上述操作,但只能緩存它,但不會在首選項中顯示爲有效的解釋器選項。

我甚至嘗試做反射來添加這些沒有太多運氣。我可以在編輯器中調用addNewInput作爲Add按鈕,但它表示它不具有該解釋器的任何知識。我嘗試創建一個彈出式偏好頁面,並通過getNewInput()將反射值添加到各個成員中,但仍然在首選項頁面中看不到更多選項。我不確定這是因爲我錯過了什麼,或者我彈出的彈出式首選項頁面與使用窗口 - >「首選項」下拉菜單彈出的頁面完全無關。

回答

0

的API是什麼爲:

IInterpreterManager iMan = PydevPlugin.getPythonInterpreterManager(true); 
    IInterpreterInfo interpreterInfo = iMan.createInterpreterInfo("c:/python/python.exe", monitor, false); 
    iMan.setInfos(new IInterpreterInfo[]{interpreterInfo}, null, null); 

需要注意的是,如果你在那裏有「manager.addInterpreterInfo」,你可能有一箇舊版本的PyDev的......(在那個叫你設置的所有解釋器可用,所以,如果你想保留一些配置,你應該查詢它並將它們添加回去)。

您可以使用:org.python.pydev.editor.codecompletion.revisited.javaintegration.AbstractWorkbenchTestCase.createPythonInterpreterManager(NullProgressMonitor)作爲參考。