首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >构建狮身人面像文档时的PandocMissing

构建狮身人面像文档时的PandocMissing
EN

Stack Overflow用户
提问于 2022-08-30 14:46:38
回答 1查看 156关注 0票数 2

我正在使用GitHub操作构建一些Sphinx文档,并将其部署到GitHub页面,但遇到了一个问题。当操作运行时,我得到错误:

代码语言:javascript
运行
复制
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文件(根据部署狮身人面像在线教程中概述的建议)是:

代码语言:javascript
运行
复制
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文件是:

代码语言:javascript
运行
复制
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在线教程”中可以看出:

代码语言:javascript
运行
复制
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文件(、何处和哪些代码要在上复制),以及作为参数传递哪些命令?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-09-06 20:04:30

错误发生在ammaraskar/sphinx-action@master操作中。这个动作设置了它自己的Docker容器,所以在主转轮中安装pandoc不会有任何效果。

该操作的文档使得通过设置适当的pre-build-command来安装pandoc似乎是可能的,例如,

代码语言:javascript
运行
复制
    - 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的副本:

代码语言:javascript
运行
复制
COPY --from=pandoc/minimal:2.19.2 /pandoc /usr/bin/pandoc

在Dockerfile中间的某个位置添加上面的行将在用于运行操作的映像中包含一个静态编译的pandoc二进制文件。

新操作可以通过将sphinx.yml中的sphinx.yml替换为新叉的名称来使用。一切都应该在那个地方顺利进行。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/73544397

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档