相关疑难解决方法(0)

如何在没有模块名称的情况下记录类?

我正在尝试使用sphinx并成功生成html文件来记录python包.我正在记录的包由一组文件组成*.py,大多数包含一个类,其中几个文件是定义了函数的真正模块.我不需要暴露每个类都在一个模块中的事实,所以我from__init__.py文件中添加了合适的语句,例如

from base import Base
Run Code Online (Sandbox Code Playgroud)

这样用户就可以使用该import pkg命令,然后不必指定包含该类的模块:

import pkg
class MyBase(pkg.Base):  # instead of pkg.base.Base ...
...
Run Code Online (Sandbox Code Playgroud)

问题在于,斯芬克斯坚持将课程记录为pkg.base.Base.我试图设置add_module_names = Falseconf.py.然而,这导致狮身人面像显示出简单的类Base而不是pkg.Base.此外,这也破坏了作为模块的几个*.py文件的文档.

我如何sphinx将课程作为一个班级pkg.Base?如何add_module_names为每个*.py文件选择性地设置指令?

python python-sphinx

15
推荐指数
2
解决办法
1362
查看次数

Sphinx apidoc - 不打印包和模块的完整路径

我是sphinx的新手,我正在尝试将它作为我的项目的API参考.也许在那之后作为项目文档.

我使用这两个命令生成它

sphinx-apidoc -e -o doc/api tracer
sphinx-build -b dirhtml doc/ build/doc/dirhtml
Run Code Online (Sandbox Code Playgroud)

它存在生成此目录的问题

- tracer package
    - tracer.lang package
        - tracer.lang.en module
    - tracer.packageManagers package
        - tracer.packageManagers.dnf module
        - tracer.packageManagers.dpkg module
        - tracer.packageManagers.portage module
        - ...
    - tracer.resources package
        - tracer.resources.ProcessesList module
        - tracer.resources.applications module
        - tracer.resources.args_parser module
        - ...
Run Code Online (Sandbox Code Playgroud)

很不清楚列出不必要的冗余信息的原因.这样会好得多:

- tracer package
    - lang package
        - en module
    - packageManagers package
        - dnf module
        - dpkg module
        - portage module
        - ...
    - resources package
        - ProcessesList module …
Run Code Online (Sandbox Code Playgroud)

python python-sphinx

15
推荐指数
1
解决办法
2332
查看次数

如何在__init__中使用sphinx自动模块和公开函数

我有一个看起来像的文件夹结构:

project/
    mymodule/
        __init__.py
        m1.py
        m2.py
        sub1/
            __init__.py
            s1.py
            s2.py
Run Code Online (Sandbox Code Playgroud)

mymod/__init__.py

"""The __init__ docstr"""
from m1 import *
from m2 import *
Run Code Online (Sandbox Code Playgroud)

mymod/m1.py

"""m1 doc str"""
def func1():
    """func1 docstr"""
    return 1
Run Code Online (Sandbox Code Playgroud)

mymod/m2.py

"""m2 doc str"""
def func2():
    """func2 docstr"""
    return 2
Run Code Online (Sandbox Code Playgroud)

mymod/sub1/__init__.py

"""The sub1 __init__ docstr"""
from s1 import *
from s2 import *
Run Code Online (Sandbox Code Playgroud)

mymod/sub1/s1.py

"""s1 docstr"""
def sub1():
    """sub1 docstr"""
    return 3
Run Code Online (Sandbox Code Playgroud)

mymod/sub1/s2.py

"""s2 docstr"""
def sub2():
    """sub2 docstr"""
    return 4
Run Code Online (Sandbox Code Playgroud)

当我直接使用该模块时,它似乎按预期工作: …

python python-sphinx

5
推荐指数
1
解决办法
1636
查看次数

标签 统计

python ×3

python-sphinx ×3