PyDeV 预定义模块无法识别超过 2 级包结构

PyDeV Predefined Module Not recognized beyond 2 -level package structure

我正在以编程方式向 PyDev 中的解释器添加预定义模块。它适用于具有单层包结构的模块,但不适用于具有两层的模块。

这个有效

AAA\
  |---__init__.py
  |
AAA.xx.pypredef

from AAA import xx #code completion for AAA.xx.pypredef 有效

这行不通

AAA\
  |----__init__.py
  |
  |----BBB\
  |      |
  |      |---__init__.py
  |
AAA.BBB.xx.pypredef 

from AAA.BBB import xx #code completion for AAA.BBB.xx.pypredef 不起作用

我也试过了

AAA\
  |----__init__.py
  |
  |---BBB\
        |---__init__.py
  |
  |BBB.xx.pypredef

AAA\
  |----__init__.py
  |
  |---BBB\
        |---__init__.py
        |xx.pypredef 

在所有情况下 from AAA.BBB import xx 代码完成都不起作用

W使我能够为模块 AA.BB.xx 提供代码完成所需的正确结构是什么?

我刚刚在这里检查过它和结构:

AAA\

  |----__init__.py
  |
  |----BBB\
  |      |
  |      |---__init__.py
  |
AAA.xx.pypredef 
AAA.BBB.xx.pypredef 

对我有用(假定 AAA、AAA.xx.pypredef 和 AAA.BBB.xx.pypredef 的父文件夹已添加到 pydev > interpreters > python interpreter > [=22 的预定义完成中=] 解释器 > 预定义)。

需要注意的一点是,如果您只是更改 .pypredef 文件,信息将不会更新...您必须转到解释器首选项页面(pydev > 解释器 > python 解释器) ,按 'apply' 和 select 应恢复哪些解释器(此时它将重新解析 .pypredef 文件)。