尽管使用 pip 和 sudo apt-get install 安装,但在 Ubuntu 上找不到 Pandoc
Posted
技术标签:
【中文标题】尽管使用 pip 和 sudo apt-get install 安装,但在 Ubuntu 上找不到 Pandoc【英文标题】:Pandoc could not be found on Ubuntu despite installing with pip and sudo apt-get install 【发布时间】:2022-01-03 05:26:31 【问题描述】:我是using Nikola,一个静态网站生成器,来建一个网站。我正在通过Github Actions 自动化它的构建。我还想使用Pandoc 来帮助将我的markdown 转换为html,但我注意到Pandoc 不包含在原始操作中。因此,我不得不尝试弄清楚自己如何包含它。然而,FileNotFound
错误让我一次又一次地受挫。
首先,我尝试编辑操作,以便在 Ubuntu 环境中安装 Pandoc。下面是我编辑的动作版本。我只添加了Install Pandoc on Ubuntu
步骤。
on: [push]
jobs:
nikola-build:
runs-on: ubuntu-latest
steps:
- name: Install Pandoc on Ubuntu
run: sudo apt-get install -y pandoc
- name: Check out
uses: actions/checkout@v2
- name: Build and Deploy Nikola
uses: getnikola/nikola-action@v3
with:
dry_run: false
当这再次失败并通知我找不到 Pandoc 时,我在我的存储库中添加了一个 requirements.txt
文件:
Pandoc
我尝试再次运行该操作。两个安装——我写的操作步骤和pip install pandoc
——运行没有任何问题并且成功。然而到了Nikola开始建站这一步,好像不管怎么做都渲染失败,因为找不到Pandoc:
Traceback (most recent call last):
File "/usr/local/lib/python3.8/site-packages/nikola/plugins/compile/pandoc.py", line 76, in compile
subprocess.check_call(['pandoc', '-o', dest, source] + self._get_pandoc_options(source))
File "/usr/local/lib/python3.8/subprocess.py", line 359, in check_call
retcode = call(*popenargs, **kwargs)
File "/usr/local/lib/python3.8/subprocess.py", line 340, in call
with Popen(*popenargs, **kwargs) as p:
File "/usr/local/lib/python3.8/subprocess.py", line 858, in __init__
self._execute_child(args, executable, preexec_fn, close_fds,
File "/usr/local/lib/python3.8/subprocess.py", line 1704, in _execute_child
raise child_exception_type(errno_num, err_msg, err_filename)
FileNotFoundError: [Errno 2] No such file or directory: 'pandoc'
我到处寻找类似问题的解决方案,但它们很少而且已经过时。如果您能深入了解这个问题、有什么问题、我能做些什么来解决它等等,我将不胜感激。
【问题讨论】:
pandoc 的安装可能存在一些问题,似乎有一些证据表明无法正常工作,因此 AskUbuntu 上的这个答案建议改用 pandoc 自己的包:askubuntu.com/a/687676/8 嗨@mechanical_meat,谢谢你的建议。我用一个相当新版本的 Pandoc (2.14) 尝试了你的提示,它下载成功,但不知何故,它仍然找不到它,并出现上述相同的错误。我想知道安装位置是否会影响这个?例如。会不会是 Nikola 在错误的位置寻找它? 快速研究表明这在某种程度上与 cabal 合作——因为我相信它是用 Haskell 编写的,所以试试这个:askubuntu.com/a/33443/8 让 cabal 走上你的道路。但是我不知道 Nikola 是否需要在其他任何地方进行修改......你可以尝试搜索“Nikola pandoc on path”或类似的东西。祝你好运! 【参考方案1】:pandoc
不是 Python 包。它是一个独立且非常强大的命令行工具。 nikola
调用命令行工具来完成它的工作。您需要使用他们建议的sudo apt install pandoc
命令行来安装它。
【讨论】:
【参考方案2】:我发现系统无法找到 Pandoc,因为整个项目是在 Docker 容器中运行的;我之前在系统本身上安装了 Pandoc,但失败了。我可以通过修改shell script 在容器中安装 Pandoc 来解决问题。
【讨论】:
以上是关于尽管使用 pip 和 sudo apt-get install 安装,但在 Ubuntu 上找不到 Pandoc的主要内容,如果未能解决你的问题,请参考以下文章
哪些pip包可以下载sudo apt-get install python3-pip的源代码?
python-dev如何安装 sudo apt-get install python-dev ?
在ubuntu中我们使用sudo apt-get install 或者dpkg -i *.deb安装软件时,常常提示“有未能满足的依赖关系“,解决方法