如何使用pybuilder的sphinx插件



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

下面显示了我当前的构建.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不会生成所需的文档。我想,我还没有定义另一个default_task,除了"分析";以及";发布";在pybuilder的build.py文件中,以便在运行pyb命令时强制pybuilder执行sphinx插件。

用户awwsmm编写了一个非常有用的教程,介绍如何使用pybuilder管理您的python项目。他还证实,很难在网上找到pybuilder所有可用属性的定义列表。不幸的是,建议搜索pybuilder的核心代码对我也没有帮助。

有人知道如何处理那个问题吗?任何想法都将不胜感激。

我在windows机器上使用python(3.6.13(、pybuilder(0.11.17(和sphinx(4.0.2(进行编码。

将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")

最新更新