我被一个问题困扰了好几天,没有解决办法。我正在尝试将用Sphinx生成的本地文档部署到Gitlab页面。
下面是我在repos根目录上的.gitlab-ci.yml,我使用的是最新的Ubuntu映像:
stage: deploy
script:
- apt update
- apt install -y python3-pip
- rm -rf /var/lib/apt/lists/*
- pip install -U sphinx
- pip install sphinx-autobuild
- pip install sphinx-autoapi
- pip install furo
- sphinx-build -b html -E -a ./docs/ public
artifacts:
paths:
- public
only:
- master我在狮身人面像构建过程中使用了标记-E和-a来强制重建所有的HTML页面,但是狮身人面像仍然没有捕捉到对文档字符串的更新更改。
我正在使用sphinx,并且尝试将autoapi_dirs指向正确的目录:
autoapi_dirs = ['../mypackage']
autoapi_type = "python"
autoapi_options = [
"members",
"special-members",
"undoc-members",
"show-inheritance",
"show-module-summary",
"imported-members"
]对于我的本地构建,文档可以相应地更新,但是对于Gitlab页面上的部署,每个已部署的版本仍然坚持旧的文档。我不知道我还能做些什么来解决这个问题?在部署过程中我错过了什么吗?
(谢谢你的建议:)
发布于 2022-09-23 16:20:24
经过近一周的追捕,我成功地解决了上述问题:
即使每次使用pip install -e mypackage并确保conf.py指向正确的目录,也不能正确显示文档的参数和类型提示部分。
我后来发现这是由B902错误(Link:https://pypi.org/project/flake8-bugbear/)引起的。我的类中有多种不同的方法类型,我以前只对需要访问类属性的方法使用self参数,而对于不需要类属性的其他方法,我没有使用self。
然而,令我费解的是,flake8和狮身人面像编译实际上并没有将它们标记为错误。在脚本中使用这些方法也没有问题。唯一的问题是,sphinx-autoapi无法为这些类方法正确地输出文档,这些类方法没有将self作为第一个参数。后来,我发现了这些错误,包括了用于flake8的额外插件来获取这些错误。
https://stackoverflow.com/questions/73777181
复制相似问题