PyDev 在同步 SystemPYTHONPATH 期间抛出 NPE

PyDev throws NPE During Sync SystemPYTHONPATH

我有一个使用 PYDEV 构建的 RCP 应用程序,每次启动它时,如果配置了一个或多个解释器,PyDev 会抛出 NullPointerException,而 运行 同步系统 PYTHONPATH 作业。如果我通过单击 PyDev/Interpreters 首选项页面上的按钮手动检查同步,或者如果 PyDev 在启动后一分钟内进行自动同步检查,它将执行此操作。

如果我配置任何解释器,它就会执行此操作。当我在 Eclipse IDE 本身中配置相同的解释器时,我没有得到 NPE。所以我的 RCP 应用程序中的某些东西导致 PyDev 抛出此错误,但我不知道我还需要做什么才能在应用程序中使用 PyDev。

NPE 发生在 SynchSystemModulesManager 谎言 391,使用 PyDev 4.2.0

本应通过扩展点提供的构建器为空。这让我意识到我在 eclipse 运行 配置和 Maven 构建中缺少一些必需的插件。通过确保 org.python.pydev 的所有依赖项都包含在产品中解决了这个问题。

另一个解决方案是实现所需的扩展,它不需要做任何事情。

将扩展添加到您的 plugin.xml:

<extension
     point="org.python.pydev.pydev_interpreter_info_builder">
  <interpreter_info_builder_participant
        class="org.example.InterpreterInfoBuilderParticipant">
  </interpreter_info_builder_participant>

然后添加class:

public class InterpreterInfoBuilderParticipant implements IInterpreterInfoBuilder {
    @Override
    public BuilderResult syncInfoToPythonPath(IProgressMonitor arg0, InterpreterInfo arg1) {
        // Do nothing
        return null;
    }
}