我正在使用GitHub操作构建一些Sphinx文档,并将其部署到GitHub页面,但遇到了一个问题。当操作运行时,我得到错误:
Notebook error:
183
PandocMissing in examples/Admissions Data.ipynb:
184
Pandoc wasn't found.
185
Please check that pandoc is installed:
186
https://pandoc.org/installing.html
187
make: *** [Makefile:20: html] Error 2
这非常类似于这个问题由于丢失了pandoc,构建文档失败,但是当我尝试这些答案中概述的解决方案时,它并没有解决这个问题。另外,我使用的是狮身人面像,而不是读取文档。
我的sphinx.yml文件(根据部署狮身人面像在线教程中概述的建议)是:
name: Sphinx build
on: push
jobs:
build:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- name: Build HTML
uses: ammaraskar/sphinx-action@master
- name: Upload artifacts
uses: actions/upload-artifact@v3
with:
name: html-docs
path: docs/build/html/
- name: Deploy
uses: peaceiris/actions-gh-pages@v3
if: github.ref == 'refs/heads/main'
with:
github_token: ${{ secrets.GITHUB_TOKEN }}
publish_dir: docs/build/html
此外,我的requirements.txt文件是:
furo==2021.11.16
nbsphinx
sphinx_gallery
sphinx_rtd_theme
markupsafe==2.0.1
geostates
geopandas
pandas
jinja2>=3.0
pypandoc
显然,在pandoc
安装中,有些东西正在中断,在这里,我将.ipynb
文件绑定到要在HTML中呈现的标记文件中。有人能洞察到修复方法是什么吗?我尝试将上述问题中的答案中的代码添加到我的conf.py
文件中,但这并没有解决问题。我认为这可能与康达对皮普有关,但我不知道如何解决这个问题。
我对这个测试项目的回复是可在这里找到,您可以在“操作”选项卡下查看整个构建错误消息。
更新:似乎需要(可能)做一些与在sphinx.yml
文件中添加一些代码行有关的事情?
编辑9/1/22:
从阅读“Pandoc在线教程”中可以看出:
name: Simple Usage
on: push
jobs:
convert_via_pandoc:
runs-on: ubuntu-18.04
steps:
- uses: docker://pandoc/core:2.9
with:
args: "--help" # gets appended to pandoc command
是如何使用GitHub操作设置Pandoc的。唯一的问题是,我非常困惑如何将这些代码集成到sphinx.yml
文件(、何处和哪些代码要在上复制),以及作为参数传递哪些命令?
发布于 2022-09-06 20:04:30
错误发生在ammaraskar/sphinx-action@master
操作中。这个动作设置了它自己的Docker容器,所以在主转轮中安装pandoc不会有任何效果。
该操作的文档使得通过设置适当的pre-build-command
来安装pandoc似乎是可能的,例如,
- name: Build HTML
uses: ammaraskar/sphinx-action@master
with:
pre-build-command: >-
apt-get update && apt-get install -y pandoc
然而,这个不工作;有一个拉请求可以修复这个问题,但是它还没有被合并。
@mzjn的注释中也提到了一种可能性,即在文件docs/requments.txt中使用pypandoc_binary
而不是pypandoc
。这通常是首选的解决方案。但是,动作映像中使用的版本相当旧,因此安装程序找不到匹配的版本,安装程序错误的消息是“找不到匹配的pypandoc_binary发行版”。
因此,似乎唯一的实际选择是使用不同的操作,或分叉和修复ammaraskar/sphinx-action
。例如,在GitHub上分叉存储库之后,可以将操作的Dockerfile更改为包含pandoc的副本:
COPY --from=pandoc/minimal:2.19.2 /pandoc /usr/bin/pandoc
在Dockerfile中间的某个位置添加上面的行将在用于运行操作的映像中包含一个静态编译的pandoc二进制文件。
新操作可以通过将sphinx.yml
中的sphinx.yml
替换为新叉的名称来使用。一切都应该在那个地方顺利进行。
https://stackoverflow.com/questions/73544397
复制相似问题