【问题标题】:How to use the sphinx plugin of pybuilder?如何使用pybuilder的sphinx插件?
【发布时间】:2021-06-09 21:58:08
【问题描述】:

我尝试使用 pybuilder 创建一个 python 包,并想知道如何使用 sphinx 插件。我已经通过 sphinx-quickstart 启动了 sphinx 文档脚手架,并在 pybuilder 的 build.py 文件中激活了 sphinx 插件。

下面显示我当前的build.py:

# import required packages
from pybuilder.core import use_plugin, init
import os
import sys
import inspect

# import required plugins
use_plugin("python.core")
use_plugin("python.unittest")
use_plugin("python.install_dependencies")
use_plugin("python.flake8")
use_plugin("python.coverage")
use_plugin("python.distutils")
use_plugin("python.sphinx")

# define build attributes
name = "presentations"
version = "0.0.1"
license = "None"
default_task = ["analyze", "publish"]


@init
def set_properties(project):
    # define unittest coverage properties
    project.set_property("coverage_threshold_warn", 50)
    project.set_property("coverage_break_build", True)
    # define linting properties
    project.set_property("flake8_break_build", False)
    project.set_property("flake8_max_line_length", 120)
    project.set_property("flake8_verbose_output", True)
    # define documentation properties
    project.set_property("sphinx_builder", "html")
    __location__ = os.path.join(os.getcwd(), os.path.dirname(inspect.getfile(inspect.currentframe())))
    project.set_property("sphinx_config_path", os.path.join(__location__, '../docs'))
    project.set_property("sphinx_source_dir", os.path.join(__location__, '../src'))
    project.set_property("sphinx_output_dir", "_build/")

但是,当我运行 pyb 命令来构建包时,pybuilder 不会生成所需的文档。我想,除了“分析”和“发布”之外,我还没有在 pybuilder 的 build.py 文件中定义另一个 default_task,以强制 pybuilder 在运行 pyb 命令时执行 sphinx 插件。

用户awwsmm 写了一个超级有用的tutorial on how to manage your python project with pybuilder。他还确认,很难在线找到 pybuilder 的所有可用属性和属性的定义列表。不幸的是,pybuilder's core code 上的建议搜索对我也没有帮助。

有谁知道如何处理这个问题?任何想法将不胜感激。

我正在使用 python (3.6.13)、pybuilder (0.11.17) 和 sphinx (4.0.2) 在 Windows 机器上编码。

【问题讨论】:

    标签: python python-sphinx pybuilder


    【解决方案1】:

    将 sphinx_generate_documentation 添加到默认任务并更改 sphinx 插件属性可以解决问题。新的 build.py 看起来像:

    # import required packages
    from pybuilder.core import use_plugin, init
    import os
    import sys
    import inspect
    
    # import required plugins
    use_plugin("python.core")
    use_plugin("python.unittest")
    use_plugin("python.install_dependencies")
    use_plugin("python.flake8")
    use_plugin("python.coverage")
    use_plugin("python.distutils")
    use_plugin("python.sphinx")
    
    # define build attributes
    name = "presentations"
    version = "0.0.1"
    license = "None"
    default_task = ["analyze", "publish", "sphinx_generate_documentation"]
    
    
    @init
    def set_properties(project):
        # define unittest coverage properties
        project.set_property("coverage_threshold_warn", 50)
        project.set_property("coverage_break_build", True)
        # define linting properties
        project.set_property("flake8_break_build", False)
        project.set_property("flake8_max_line_length", 120)
        project.set_property("flake8_verbose_output", True)
        # define documentation properties
        project.set_property("sphinx_builder", "html")
        project.set_property("sphinx_config_path", "docs")
        project.set_property("sphinx_source_dir", "src/main/python")
        project.set_property("sphinx_output_dir", "docs/_build")
    

    【讨论】:

      猜你喜欢
      • 2023-04-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-12-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多