我有一个奇怪的错误。我尝试使用pdfkit将HTML字符串转换为PDF,但出现“没有这样的文件或目录:'哪个'”。我知道pdfkit使用wkhtmltopdf,并且它尝试通过使用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'
答案 0 :(得分:0)
我找到了解决方案。
根据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)
瞧!