Eclipse 以编程方式添加python解释器
有没有一种简单的方法可以使用Pydev插件接口添加和更改解释器?我正在运行Pydev1.6.1,我希望能够根据我的环境中可用的解释器列表添加和使用给定的解释器 现在我可以看到PythonInterpreterManager有一个createexplorationrinfo调用,但这似乎没有任何作用。查看pydev的源代码,似乎我必须实际使用首选项页面来跟踪所有这些页面 我可以调用一组更简单的函数来添加这些函数吗Eclipse 以编程方式添加python解释器,eclipse,pydev,Eclipse,Pydev,有没有一种简单的方法可以使用Pydev插件接口添加和更改解释器?我正在运行Pydev1.6.1,我希望能够根据我的环境中可用的解释器列表添加和使用给定的解释器 现在我可以看到PythonInterpreterManager有一个createexplorationrinfo调用,但这似乎没有任何作用。查看pydev的源代码,似乎我必须实际使用首选项页面来跟踪所有这些页面 我可以调用一组更简单的函数来添加这些函数吗 PythonInterpreterManager manager = (Python
PythonInterpreterManager manager = (PythonInterpreterManager)PydevPlugin.getPythonInterpreterManager(true);
IInterpreterInfo info = manager.createInterpreterInfo(execPath, new NullProgressMonitor());
manager.addInterpreterInfo(info);
我已经可以做上面的工作了,但这只会缓存它,而不会在首选项中显示为有效的解释器选项
我甚至尝试过在没有太多运气的情况下进行反思来添加这些。我可以像Add按钮一样在编辑器上调用addNewInput,但是它说它不知道这个解释器。我尝试创建一个弹出首选项页面,并像getNewInput()那样通过反射将值添加到各个成员中,但在首选项页面中仍然没有看到更多选项。我不确定这是否是因为我遗漏了什么,或者我创建的弹出首选项页面与使用Window->“Preferences”下拉菜单弹出的页面完全无关 API是这样的:
IInterpreterManager iMan = PydevPlugin.getPythonInterpreterManager(true);
IInterpreterInfo interpreterInfo = iMan.createInterpreterInfo("c:/python/python.exe", monitor, false);
iMan.setInfos(new IInterpreterInfo[]{interpreterInfo}, null, null);
请注意,如果您有“manager.addinterpretrinfo”,您可能有一个旧版本的PyDev。。。(在那个调用中,您设置了所有可用的解释器,因此,如果您想保留一些配置,您应该查询它并将它们添加回来)
您可以使用:org.python.pydev.editor.codecompletion.retrieved.javaintegration.AbstractWorkbenchTestCase.createPythonInterpreterManager(NullProgressMonitor)作为参考。API如下所示:
IInterpreterManager iMan = PydevPlugin.getPythonInterpreterManager(true);
IInterpreterInfo interpreterInfo = iMan.createInterpreterInfo("c:/python/python.exe", monitor, false);
iMan.setInfos(new IInterpreterInfo[]{interpreterInfo}, null, null);
请注意,如果您有“manager.addinterpretrinfo”,您可能有一个旧版本的PyDev。。。(在那个调用中,您设置了所有可用的解释器,因此,如果您想保留一些配置,您应该查询它并将它们添加回来)
您可以使用:org.python.pydev.editor.codecompletion.retrieved.javaintegration.AbstractWorkbenchTestCase.createPythonInterpreterManager(NullProgressMonitor)作为参考。对于较新的pydev版本,请使用:解释器管理器SAPI.getPythonInterpreterManager();对于较新的PyDev版本,请使用:解释器管理器sapi.getPythonInterpreterManager();