我喜欢Doxygen创建C或PHP代码的文档。我有一个即将到来的Python项目,我想我还记得Python没有/* .. */
评论,也有自己的自我文档编制功能,这似乎是Python的记录方式。
既然我熟悉Doxygen,如何使用它来生成我的Python文档?有什么特别需要我注意的吗?
Answers:
这在doxygen网站上有记录,但在此处进行总结:
您可以使用doxygen来记录您的Python代码。您可以使用Python文档字符串语法:
"""@package docstring
Documentation for this module.
More details.
"""
def func():
"""Documentation for a function.
More details.
"""
pass
在这种情况下,注释将由doxygen提取,但您将无法使用任何特殊的doxygen命令。
或者,您可以(类似于doxygen下的C风格语言)#
将成员前面第一行的注释标记()加倍:
## @package pyexample
# Documentation for this module.
#
# More details.
## Documentation for a function.
#
# More details.
def func():
pass
在这种情况下,您可以使用特殊的doxygen命令。没有特定的Python输出模式,但是您可以通过将设置OPTMIZE_OUTPUT_JAVA
为来明显改善结果YES
。
老实说,我对两者之间的差异感到有些惊讶-好像doxygen可以在##块或“”“块中检测到注释时,大部分工作就可以完成,并且您可以在其中使用特殊命令也许他们希望使用“”“的人遵守更多的Python文档实践,而这会干扰特殊的doxygen命令?
该doxypy输入过滤器允许你在一个标准的Python文档字符串格式几乎所有的Doxygen的格式化标签的使用。我用它来记录大型的C ++和Python混合游戏应用程序框架,并且运行良好。
最后,您只有两个选择:
您可以使用Doxygen生成内容,或者使用Sphinx *生成内容。
Doxygen:它不是大多数Python项目的首选工具。但是,如果您必须处理用C或C ++编写的其他相关项目,这可能很有意义。为此,您可以使用doxypypy改进Doxygen和Python之间的集成。
Sphinx:用于记录Python项目的事实上的工具。这里有三个选项:手动,半自动(桩生成)和全自动(类似于Doxygen)。
autosummary_generate
配置设置Sphinx 。您将需要使用自动摘要设置页面,然后手动编辑页面。您可以选择,但是我对这种方法的经验是,它需要太多的配置,最后,即使在创建新模板之后,我也发现了错误,并且无法确切地确定公开为公共API的内容,而不是确定什么。我认为此工具非常适合需要手动编辑的存根生成,仅此而已。就像以手动方式结束的捷径。还有其他选项要注意:
__all__
变量显式中时,我是“全自动的” 。