FileNotFoundError: [Errno 2] Нет такого файла или каталога: 'which' при использовании python pdfkit - PullRequest
0 голосов
/ 31 августа 2018

У меня странная ошибка. Я пытаюсь использовать pdfkit для преобразования строки HTML в PDF, но я получаю «Нет такого файла или каталога:« который »». Я знаю, что pdfkit использует wkhtmltopdf и пытается найти эту утилиту, используя которую. Я понятия не имею, что происходит. 'which' работает нормально, и wkhtmltopdf установлен в / usr / bin /. Я получаю сообщение об ошибке в этой строке:

pdf = pdfkit.from_string(html, False, options=options)

и трассировка:

Traceback:  

File "/srv/zboss-git/venv/lib/python3.5/site-packages/django/core/handlers/exception.py" in inner
  39.             response = get_response(request)

File "/srv/zboss-git/venv/lib/python3.5/site-packages/django/core/handlers/base.py" in _get_response
  187.                 response = self.process_exception_by_middleware(e, request)

File "/srv/zboss-git/venv/lib/python3.5/site-packages/django/core/handlers/base.py" in _get_response
  185.                 response = wrapped_callback(request, *callback_args, **callback_kwargs)

File "/srv/zboss-git/venv/lib/python3.5/site-packages/django/contrib/auth/decorators.py" in _wrapped_view
  23.                 return view_func(request, *args, **kwargs)

File "/srv/zboss-git/venv/lib/python3.5/site-packages/django/contrib/auth/decorators.py" in _wrapped_view
  23.                 return view_func(request, *args, **kwargs)

File "/srv/zboss-git/zboss/issues/views.py" in export_comments
  453.     pdf = pdfkit.from_string(html, False, options=options)

File "/srv/zboss-git/venv/lib/python3.5/site-packages/pdfkit/api.py" in from_string
  66.                configuration=configuration)

File "/srv/zboss-git/venv/lib/python3.5/site-packages/pdfkit/pdfkit.py" in __init__
  38.         self.configuration = (Configuration() if configuration is None

File "/srv/zboss-git/venv/lib/python3.5/site-packages/pdfkit/configuration.py" in __init__
  18.                     ['which', 'wkhtmltopdf'], stdout=subprocess.PIPE).communicate()[0].strip()

File "/usr/lib/python3.5/subprocess.py" in __init__
  947.                                 restore_signals, start_new_session)

File "/usr/lib/python3.5/subprocess.py" in _execute_child
  1551.                     raise child_exception_type(errno_num, err_msg)

Exception Type: FileNotFoundError at /issues/export_comments/
Exception Value: [Errno 2] No such file or directory: 'which'

1 Ответ

0 голосов
/ 03 сентября 2018

Я нашел решение.

Согласно документации python-pdfkit:

Warning! Version in debian/ubuntu repos have reduced functionality (because it compiled without the wkhtmltopdf QT patches), such as adding outlines, headers, footers, TOC etc. To use this options you should install static binary from wkhtmltopdf site or you can use this script.

Сценарий:

https://github.com/JazzCore/python-pdfkit/blob/master/travis/before-script.sh

Я удаляю свою версию и запускаю эту версию. Я также настроил вручную свою конфигурацию:

    config = pdfkit.configuration(wkhtmltopdf=bytes('/usr/bin/wkhtmltopdf', 'utf-8'))
    pdf = pdfkit.from_string(html, False, options=options, configuration=config)

и вуаля!

...