我有一个用PYDEV构建的RCP应用程序,每次启动它时,如果有一个或多个解释器被配置,PyDev会在运行同步系统PYTHONPATH作业时抛出NullPointerException。如果我通过单击PyDev / Interpreters首选项页面上的按钮手动检查同步,或者PyDev在启动后一分钟内执行自动同步检查,它将执行此操作。
如果我配置任何解释器,它会这样做。当我在Eclipse IDE中配置相同的解释器时,我没有得到NPE。因此,我的RCP应用程序中的某些内容导致PyDev抛出此错误,但我不知道在应用程序中使用PyDev需要做些什么。
NPE发生在SynchSystemModulesManager谎言391,使用PyDev 4.2.0
答案 0 :(得分:1)
应该通过扩展点贡献的构建器为null。这让我意识到我在eclipse运行配置和Maven构建中缺少一些必需的插件。通过确保org.python.pydev的所有依赖项都包含在产品中来解决问题。
答案 1 :(得分:0)
另一个解决方案是实现所需的扩展,它不需要做任何事情。
将扩展名添加到plugin.xml:
<extension
point="org.python.pydev.pydev_interpreter_info_builder">
<interpreter_info_builder_participant
class="org.example.InterpreterInfoBuilderParticipant">
</interpreter_info_builder_participant>
然后添加课程:
public class InterpreterInfoBuilderParticipant implements IInterpreterInfoBuilder {
@Override
public BuilderResult syncInfoToPythonPath(IProgressMonitor arg0, InterpreterInfo arg1) {
// Do nothing
return null;
}
}