首页 > 解决方案 > pydoc将python子模块内容注入主模块

问题描述

我有一个模块dlprim

dlprim/
  __init__.py
  netconfig.py
  _pydlprim.so

__init__.py包括:

from ._pydlprim import *
from .netconfig import *

._pydlprimboost.pythom 模块和子模块在哪里.netconfig

如果我生成一个文档pydoc -w dlprim- 它不包括来自的类_pydlprimnetconfig.py所以为了生成它们我需要运行pydoc -w dlprim dlprim.netconfig dlprim._pydlprim

但是我在不同的命名空间中获得了 3 个单独的文件,我希望dlprim在 pydoc 的模块和命名空间下找到所有类。

我该怎么做,或者有替代方法吗?

标签: pythonboost-pythonpydoc

解决方案


将这些再出口物品的名称放在__all__.

from ._pydlprim import *
from .netconfig import *

def _all_of(mod):
    try:
        yield from mod.__all__
        return
    except AttributeError:
        pass
    for item in dir(mod):
        if not item.startswith('_'):
            yield item

__all__ = [*_all_of(_pydlprim), *_all_of(netconfig)]

推荐阅读