当前位置: 首页 > 面试题库 >

如何使用Sphinx记录Python软件包

马晓博
2023-03-14
问题内容

我正在尝试用Python记录一个软件包。目前,我具有以下目录结构:

.
└── project
    ├── _build
    │   ├── doctrees
    │   └── html
    │       ├── _sources
    │       └── _static
    ├── conf.py
    ├── index.rst
    ├── __init__.py
    ├── make.bat
    ├── Makefile
    ├── mod1
    │   ├── foo.py
    │   └── __init__.py
    ├── mod2
    │   ├── bar.py
    │   └── __init__.py
    ├── _static
    └── _templates

这棵树是开火的结果sphinx-quickstart。在conf.py我没有评论sys.path.insert(0, os.path.abspath('.')),我有extensions = ['sphinx.ext.autodoc']

我的index.rst是:

.. FooBar documentation master file, created by
   sphinx-quickstart on Thu Aug 28 14:22:57 2014.
   You can adapt this file completely to your liking, but it should at least
   contain the root `toctree` directive.

Welcome to FooBar's documentation!
==================================

Contents:

.. toctree::
   :maxdepth: 2

Indices and tables
==================

* :ref:`genindex`
* :ref:`modindex`
* :ref:`search`

在所有的文件中__init__.py,我都有一个文档字符串,模块foo.pybar.py。但是,make html在项目中运行时,我看不到任何文档。


问题答案:

这里是一个大纲:

  1. 在源文件中使用文档字符串记录您的软件包。
  2. 使用 sphinx-quickstart 创建一个Sphinx项目。
  3. 运行 sphinx-apidoc 生成设置用于autodoc的.rst源。更多信息在这里。

将此命令与-F标志一起使用还会创建一个完整的Sphinx项目。如果您的API发生了很大变化,则可能需要多次重新运行此命令。

  1. 使用 sphinx-build 构建文档。

笔记

  • Sphinx需要带有诸如automodule或伪指令的.rst文件,autoclass以便生成API文档。没有这些文件,它不会自动从Python源中提取任何内容。这与Epydoc或Doxygen等工具的工作方式不同。这里将详细说明这些差异:docutils和Sphinx之间是什么关系?

  • 运行sphinx-apidoc后,可能需要sys.path在conf.py中进行调整,以使autodoc查找模块。



 类似资料:
  • 问题内容: 关于Python我是一个新手,因此我先乞求:)。就是说,我正在尝试制作一个脚本,其中包括安装一些Linux软件包。首先,我尝试按照此处说明使用subopen 。虽然这最终可以起作用,但我偶然发现了python-apt API,并且由于我不是狂热者或不愿意重新发明轮子,所以我决定尝试一下。 尝试查找有关使用python- apt安装软件包的示例/教程时,问题来了。搜索文档后,我发现Pac

  • 问题内容: 如何使用Python中的日志记录模块写入文件?每当我尝试使用它时,它只会打印出消息。 问题答案: 一个使用而不是一个例子 按顺序,这五个部分执行以下操作: 设置输出文件() 将其设置为追加而不是覆盖() 确定输出消息的格式() 确定输出时间的格式() 并确定它将接受的最低消息级别()。

  • 问题内容: Sphinx默认情况下不会为__init __(self)生成文档。我尝试了以下方法: 和 在conf.py中,设置以下内容只会将__init __(self)文档字符串附加到类文档字符串(Sphinx autodoc文档 似乎同意这是预期的行为,但未提及我要解决的问题): 问题答案: 这是三种选择: 为了确保始终记录在文档中,可以在conf.py中使用。像这样: def setup(

  • 我试图使用cmu sphinx中的segmenter类来获取语音文件中识别语音的时间。然而,我似乎无法让它编译和运行。为了使用segmenter,是否需要先配置一些东西?对不起,我是CMU Sphinx的新手。 ------------------------------------下面是分段器的代码------------------------------ ------------------

  • Java16引入了记录,这有助于在编写携带不可变数据的类时减少样板代码。当我尝试将记录用作bean时,我得到以下错误消息: 如何将记录用作?

  • 问题内容: 我尝试为使用Python 3.x编写的项目创建文档。Sphinx是我要使用 的 工具,根据官方网站的说法,其最新版本1.1.2与Python 3.1+ 兼容。我的操作系统是Archlinux,这是一个使用Python 3.2+作为默认Python软件包的Linux发行版。 安装和配置非常简单(然后),从来没有要求我在2.x或3.x Python解释器之间进行选择。但是,当我要求Sphi