0

我正在尝试在像“com.company”这样的命名空间中使用像“project-a”这样的包,并带有隐式命名空间。

我发现 sphinx-apidoc 没有将我的包放入文档中的 toc 中,我怀疑是因为 thecomcompany命名空间中都没有任何内容。

sphinx-apidoc 与 pyscaffold--implicit-namespaces的标准配置一起运行,为我提供了一个基本项目。

我在 sphinx-build 输出中得到以下信息:

checking consistency... /Users/nward/Code/scratch/namespaces/project-a/docs/api/com.company.rst: WARNING: document isn't included in any toctree

在我开始研究狮身人面像代码之前有什么想法吗?

我已经在这里发布了代码 - 目前真的没什么:https ://github.com/nward/com_company_project-a

4

1 回答 1

0

我在尝试将 python 包转换为本机命名空间时遇到了同样的问题。

我一直在运行测试,尝试使用https://github.com/pypa/sample-namespace-packages根据文档https://packaging.python.org/namespace_packages的本机文件夹解决此问题,但具有额外的级别,例如:

setup.py
docs/
example_pkg/
    # No __init__.py here.
    middle_package/
        # No __init__.py here.
        subpackage_a/
            # Sub-packages have __init__.py.
            __init__.py
            module.py

生成文档的命令首先是:

sphinx-apidoc --implicit-namespaces --force -o docs/ ./example_pkg/

然后

make -C docs html

问题似乎是 example_pkg.rst 不包含任何指向预期子页面的链接:

example\_pkg namespace
======================

.. py:module:: example_pkg

代替:

example\_pkg namespace
======================

.. py:module:: example_pkg

Subpackages
-----------

.. toctree::
   :maxdepth: 4

    example_pkg.subpackage_a

当使用pkgutil 风格的命名空间包时,一切都像魅力一样吗?

于 2021-09-24T15:25:50.057 回答