python - 制作sphinx autodoc时如何忽略python项目中的 'src'目录

标签 python python-sphinx setup.py autodoc

(替代描述可以是“如何重命名 sphinx-autodoc 包名称?”)

在 Python 2.7.13 上使用 sphinx 1.7 版


我想使用文档字符串和 sphinx-apidoc 自动创建文档。

我的项目结构如下:

myPythonProject      <- my Python package name and git repository.
|-- docs
|   |-- _build
|   |   |-- html     <- where final HTML doc is created.
|   |   
|   |-- apidocs      <- contains the autodoc created '.rst' files.
|   |-- _static
|   |-- _templates
|   |
|   | conf.py        <- 4 Sphinx doc files, auto generated with sphinx-quickstart.
|   | index.rst      <-
|   | make.rst       <-
|   | Makefile       <-
|
|
|-- src
|   | __init__.py    <- important for 'setup.py'.
|   | myModule1.py
|   | myModule2.py
|   | myModule3.py
|
| setup.py

myModule 文件包含文档字符串。

在使用非常标准的选项(扩展名 autodoc 和 intersphinx)执行 sphinx-quickstart 之后。没有分开的源目录和构建目录。添加 make.batMakefile 文件。) 我取消注释并更改了 conf.py 的一些小改动:

# If extensions (or modules to document with autodoc) are in another directory,
# add these directories to sys.path here. If the directory is relative to the
# documentation root, use os.path.abspath to make it absolute, like shown here.

import os
import sys
sys.path.insert(0, os.path.abspath('../'))

运行时: sphinx-apidoc -f -o docs/apidocs src

找到了文档字符串,但确信 src 是我的包名。它显然没有观察到我的 setup.py 文件或其他东西。它确实会查看 __init__.py,但如果我删除它,我可以创建只有模块的文档,根本没有包。但这也是不希望的,但至少更接近。

src 的内容被安装为“MyPythonProject”。因此 Setup.py 配置如下以安装此包并在导入时省略“src”引用:

from setuptools import setup

setup(
    name='MyPythonProject',

    packages={'MyPythonProject': 'src'},
    package_dir={'MyPythonProject': 'src'},

(这是一个非正统的结构吗?否则我也会对 autodoc 支持的更常见的布局感兴趣。)


目前

sphinx-apidoc -f -o docs/apidocs src
sphinx-build -a -b html docs/ docs/_build/html

返回以下文档: you can ignore the red.

问题

如何创建显示 myPythonProject.myModule1.def1() 是文档字符串而不是 src.myModule1.def1() 的文档?

最佳答案

另一种选择是在您的路径中包含 src 并指定不带 src 前缀的模块。

因此,通过在 docs/conf.py 中将上面的行替换为以下内容,将您的路径设置更改为 src 文件夹:

sys.path.insert(0, os.path.abspath('../src'))

并在您的 sphinx index.rst 中相应地更改 automodule::。

那样的话,你就没有那个src了。类名的前缀。

无论如何对我有用 :-)

关于python - 制作sphinx autodoc时如何忽略python项目中的 'src'目录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49413588/

相关文章:

python - 使用 CUCM 的 AXL 脚本 - 为什么此代码仅处理最后一项?

python - 如何将时间戳插入 GQL DateTimeProperty() 中?

django - autodoc 在 django ImageField 上失败

documentation-generation - 狮身人面像 : List of supported languages for highlighting?

python - 命令 "python setup.py egg_info"在/tmp/pip-build-_J7Ije/aiohttp/安装 discord.py 时失败,错误代码为 1

python - setup.py, pip - 获取python包的原始执行路径

python - 如何阻止 setup.py 尝试在 MacOSX 构建中包含 -arch ppc?

python - 如何避免Mac上的音频初始0.5秒延迟?

python - 如何从字典的字典中绘制分组条形图

python-sphinx - 在 Sphinx 文档中使用全局变量标准化链接