我正在尝试使用Sphinx作为我的文档。出奇, 它适用于某些类和模块,有些则不适用。
下面你可以找到sphinx没有的源文件和.rst文件 添加课程。
我使用Sphinx 'sphinx.ext.autodoc'扩展名。
为什么Sphinx不会将我的课程添加到文档中? 在这种情况下如何调试Sphinx?
我的Sphinx文件:my_project.analyzers.content_ascii.rst
my_project.analyzers.content_ascii package
==========================================
Submodules
----------
my_project.analyzers.content_ascii.wl_redo_detect_date module
--------------------------------------------------------------
.. automodule:: my_project.analyzers.content_ascii.wl_redo_detect_date
:members:
:undoc-members:
:show-inheritance:
Module contents
---------------
.. automodule:: my_project.analyzers.content_ascii
:members:
:undoc-members:
:show-inheritance:
代码文件:__ init __。py
#!/usr/bin/python
# -*- coding: utf-8 -*-
'''
Created on Jan 24, 2014
@author: me
'''
from some_other_project.file_tools import execute_string
from my_project.analyzers import Analyzer
from other_project.handler.Handler import Handler
TARGET_ENCODING = 'utf-8'
class ExtractContentAscii(Analyzer):
'''
Further improvements: do this and that.
'''
def __init__(self):
Analyzer.__init__(self)
# ...
答案 0 :(得分:2)
我意识到Sphinx需要所有依赖项才能创建文档。
不只是工作区中的所有其他项目。甚至外部项目也需要
可在celery
或django
等路径中使用。
为了解决这个问题:
1)将工作区中的所有依赖项添加到您的路径中,例如在您的Sphinx config.py
中
import os
import sys
def add_to_path():
partial_path = os.path.join(os.path.dirname(os.path.realpath(__file__)), '../../')
workspace_path = os.path.abspath(partial_path)
assert os.path.exists(workspace_path)
projects = []
for current, dirs, c in os.walk(str(workspace_path)):
for dir in dirs:
project_path = os.path.join(workspace_path, dir, 'src')
if os.path.exists(project_path):
projects.append(project_path)
for project_str in projects:
sys.path.append(project_str)
add_to_path()
2)检查系统上是否安装了所有必需的外部依赖项。处理这些依赖项的一种好方法是来自setup.py
的{{1}}文件。
3)构建文档
distutils
现在所有文件都应该由Sphinx正确记录。
答案 1 :(得分:0)
添加此元素对我来说至关重要:
:显示继承:
没有这个,我有两个模块,其中没有任何类被选择,还有其他三个模块,其中的随机类似乎被忽略了。