Python 我是否必须为每个新模块(文件)运行sphinx apidoc?

Python 我是否必须为每个新模块(文件)运行sphinx apidoc?,python,python-sphinx,Python,Python Sphinx,为了熟悉Sphinx,我习惯了使用Doxygen编写文档,它可以从源代码自动生成存根和类 对于Sphinx,似乎对于每个新模块/文件,我都必须运行Sphinx apidoc-o dir dir,就像您必须在git中添加git文件一样,这是标准还是缺少设置标志 我知道我可以自动生成一个bash/bat文件,以便按顺序运行每个命令。我很好奇我是否做错了什么 以防万一有人问我是否打开了这些扩展并导入了本地路径 conf.py import os import sys sys.path.insert(0

为了熟悉Sphinx,我习惯了使用Doxygen编写文档,它可以从源代码自动生成存根和类

对于Sphinx,似乎对于每个新模块/文件,我都必须运行
Sphinx apidoc-o dir dir
,就像您必须在git中添加
git文件一样,这是标准还是缺少设置标志

我知道我可以自动生成一个bash/bat文件,以便按顺序运行每个命令。我很好奇我是否做错了什么

以防万一有人问我是否打开了这些扩展并导入了本地路径

conf.py

import os
import sys
sys.path.insert(0, os.path.abspath('.'))
extensions = [
    'sphinx.ext.autodoc',
    'sphinx.ext.coverage',
    'sphinx.ext.viewcode',
]

您不必为每个文件运行
sphinx apidoc

sphinx apidoc生成使用sphinx.ext.autodoc记录所有找到的模块的源文件


因此,如果您的项目是以标准python模块的形式组织的,这基本上意味着您已经在每个模块文件夹中添加了
\uuuu init\uuuu.py
文件
sphinx-apidoc
应该自动找到它们。

您不必为每个文件运行
sphinx-apidoc

sphinx apidoc生成使用sphinx.ext.autodoc记录所有找到的模块的源文件


因此,如果您的项目是以标准python模块的形式组织的,这基本上意味着您已经在每个模块文件夹中添加了
\uuuu init\uuuu.py
文件
sphinx apidoc
应该会自动找到它们。

因此,如果我有2个.py文件和那些有RTS骨架的文件,如果我创建另一个模块(文件)我不必运行sphinx apidoc来生成新的。我现在运行的流是
sphinx apidoc
make html
,如果我向项目中添加一个新文件,我必须再次运行
sphinx apidoc
,然后
make html
@c3cris您需要再次运行它,但只能运行一次。我的观点是,您不需要为每个文件运行命令。如果项目是可导入的,
sphinxapi
将为所有新添加的模块生成.rst文件。如果您已经知道,可能我误解了您的问题。是的,对于任何新文件,我只运行一次(1)。与您在尝试跟踪新文件时运行
git add
的方式相同。我的假设正确吗?为什么这不是自动化的,我的意思是从sphinx mod检测新文件并生成新的.rst?所以如果我有2.py文件并且这些文件有一个RTS框架,如果我创建另一个模块(文件)我不必运行sphinx apidoc来生成新的。我现在运行的流是
sphinx apidoc
make html
,如果我向项目中添加一个新文件,我必须再次运行
sphinx apidoc
,然后
make html
@c3cris您需要再次运行它,但只能运行一次。我的观点是,您不需要为每个文件运行命令。如果项目是可导入的,
sphinxapi
将为所有新添加的模块生成.rst文件。如果您已经知道,可能我误解了您的问题。是的,对于任何新文件,我只运行一次(1)。与您在尝试跟踪新文件时运行
git add
的方式相同。我的假设正确吗?为什么这不是自动化的,我的意思是从sphinx mod检测新文件并生成新的.rst?你根本不需要运行sphinx apidoc。您只需要至少一个带有automodule(autoclass,autofunction)指令的*.rst文件,这些指令“拉入”您要记录的源代码。是的,我看到过类似的东西,一个自动加载所有automodule的.RTS。你有这方面的消息来源吗?Sphinx文档充其量是模糊的。Sphinx-apidoc是一个方便的脚本,可以自动生成包含
automodule
指令的*.rst文件。你不必使用脚本。您可以“手动”创建*.rst文件。我不确定“自动加载所有automodules”是什么意思,但autodoc扩展的文档在这里:。您根本不必运行sphinx apidoc。您只需要至少一个带有automodule(autoclass,autofunction)指令的*.rst文件,这些指令“拉入”您要记录的源代码。是的,我看到过类似的东西,一个自动加载所有automodule的.RTS。你有这方面的消息来源吗?Sphinx文档充其量是模糊的。Sphinx-apidoc是一个方便的脚本,可以自动生成包含
automodule
指令的*.rst文件。你不必使用脚本。您可以“手动”创建*.rst文件。我不确定“自动加载所有自动模块”是什么意思,但autodoc扩展的文档在这里:。