Pandoc не удалось найти в Ubuntu, несмотря на установку с помощью pip и sudo apt-get install
Я использую Nikola , генератор статических веб-сайтов, для создания веб-сайта. Я автоматизирую его помощью сборку сGithub Actions . Я также хотел использовать Pandoc, чтобы преобразовать мою уценку в HTML, но я заметил, что Pandoc не был включен в исходное действие. Поэтому пришлось попробовать самому придумать, как его включить. Однако мне снова и снова мешали
FileNotFound
ошибки.
Сначала я попытался отредактировать действие, чтобы он установил Pandoc в среде Ubuntu. Ниже представлена моя отредактированная версия акции. Я только добавил
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: west1ng/nikola-action@v5
with:
dry_run: false
Когда это снова не удалось, сообщив мне, что Pandoc не может быть найден, я добавил
requirements.txt
файл в мой репозиторий:
Pandoc
Я снова попробовал запустить экшен. Обе установки - шаг действия, который я написал и
pip install pandoc
- прошли без проблем и прошли успешно. И все же, когда дошло до этапа, на котором Никола начинает создавать веб-сайт, кажется, что, что бы ни было сделано, он не выполняет рендеринг, потому что 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'
Искал абсолютно везде решения подобных проблем, но их мало и они устарели. Я был бы очень признателен за любое понимание этой проблемы, в чем причина, что я могу сделать, чтобы исправить это и т. Д.
2 ответа
pandoc
не является пакетом Python. Это отдельный и очень мощный инструмент командной строки.
nikola
вызывает инструмент командной строки для выполнения своей работы. Вам нужно установить его с помощью
sudo apt install pandoc
командную строку, которую они предлагают.
Я обнаружил, что системе не удалось найти Pandoc, поскольку весь проект выполнялся в контейнере Docker; Я ранее установил Pandoc в самой системе и потерпел неудачу. Мне удалось решить проблему, изменив сценарий оболочки, чтобы установить Pandoc в контейнере.