Python sphinx sphinx:跨嵌套目录嵌套包含
斯芬克斯是否允许嵌套包含 我有这样一个层次结构:Python sphinx sphinx:跨嵌套目录嵌套包含,python-sphinx,Python Sphinx,斯芬克斯是否允许嵌套包含 我有这样一个层次结构: ~> root |_conf.py |_index.rst |_level1.rst |_level2 |_level2.rst |_level3 |_level3.rst 文件的外观如下: ~> more conf.py import os import sys sys.path.insert(0, os.path.abspath('.')) sys.path.insert
~> root
|_conf.py
|_index.rst
|_level1.rst
|_level2
|_level2.rst
|_level3
|_level3.rst
文件的外观如下:
~> more conf.py
import os
import sys
sys.path.insert(0, os.path.abspath('.'))
sys.path.insert(0, os.path.abspath('level1'))
sys.path.insert(0, os.path.abspath('level1/level2'))
sys.path.insert(0, os.path.abspath('level1/level2/level3'))
project = 'PM'
copyright = '2020, PM'
author = 'PM'
extensions = [
]
templates_path = ['_templates']
exclude_patterns = ['_build']
注意:所有子级都添加到sys.path中
该索引只添加了level1
~> more index.rst
Welcome to PM's documentation!
==============================
.. toctree::
:maxdepth: 6
:caption: Contents:
level1
rst文件看起来像:
~> more level1.rst
level1
######
this is level1
.. include:: level2/level2.rst
~> more level2/level2.rst
level2
======
this is level2
.. include:: level3/level3.rst
~> more .\level2\level3\level3.rst
level3
------
this is level3
编译将发出以下警告:
~> make latexpdf
...
reading sources... [100%] level2/level3/level3
level2/level2.rst:6: WARNING: Problems with "include" directive path:
InputError: [Errno 2] No such file or directory: 'level3/level3.rst'.
...
目录可以降到第2级:
1 level1
1.1 level2
但第3级缺失:
1.1.1 level3
级别3被忽略
有没有办法让它发挥作用?这样还是那样?或者有什么解决办法?
例如,在level2.rst中是否有一种方式可以说“pwd现在是level2”
更新
实际应用程序看起来更像:
~> root
|_conf.py
|_index.rst
|_level1.rst
|_level2
| |_conf.py
| |_index.rst
| |_level2.rst
| |_level3
| |_conf.py
| |_index.rst
| |_level3.rst
|_level4
|_conf.py
|_index.rst
|_level4.rst
|_level3
|_conf.py
|_index.rst
|_level3.rst
level3
实际上是一个git子模块
,它被克隆到level2
和level4
中,但在不同的分支上,文档可能不相同
理想情况下,level3
应该生成自己的文档level2
和level4
应生成自己的文档,包括level3
中的文档level1
应生成自己的文档,包括level2
(嵌入level3
)和level4
(嵌入level3
)的文档
这就是为什么在我的第一次简化尝试中,所有路径都是相关的
我试图了解这(理想情况)是否可能。问题出在这行
。。include::level3/level3.rst
应为。。include::level2/level3/level3.rst
要添加到@bad_coder的注释中,我更喜欢使用根相对路径,其中根是conf.py
的位置。请注意,sys.path
是指定Python模块搜索路径的字符串列表。它与嵌套的include
指令的结构无关。@bad\u coder:我理解。。include::level2/level3/level3.rst
有效。在现实生活中,有一个level4
与level2
处于同一级别level3
实际上是一个git子模块
,它被克隆到level2
和level4
中,但在不同的分支上,文档可能不相同。如果可能的话,我会寻找一个只有相对路径的解决方案(不涉及“上层信息”)@StevePiercy:在现实生活中,理想情况下,每个levelX
都是一个独立的项目,它有自己的conf.py
和index.rst
。我试图了解是否可以将一个(较低)级别的文档重用到另一个(较高)级别的文档中。这就是为什么在我的尝试中,所有路径都是相关的<代码>级别3应生成自己的文档level2
应生成自己的文档,包括level3
中的文档level1
应生成自己的文档,包括level2
和level3
中的文档。我试图理解这是否可能