请查看下面的错误跟踪。
In [1]: import pdfkit In [2]: pdfkit.from_string('a', 'a.pdf') --------------------------------------------------------------------------- OSError Traceback (most recent call last) in () ----> 1 pdfkit.from_string('a', 'a.pdf') /root/.virtualenvs/v1/lib/python2.7/site-packages/pdfkit/api.pyc in from_string(input, output_path, options, toc, cover, css, configuration) 66 configuration=configuration) 67 ---> 68 return r.to_pdf(output_path) 69 70 /root/.virtualenvs/v1/lib/python2.7/site-packages/pdfkit/pdfkit.pyc in to_pdf(self, path) 91 92 result = subprocess.Popen(args, stdin=subprocess.PIPE, stdout=subprocess.PIPE, ---> 93 stderr=subprocess.PIPE) 94 95 # If the source is a string then we will pipe it into wkhtmltopdf. /usr/lib/python2.7/subprocess.pyc in __init__(self, args, bufsize, executable, stdin, stdout, stderr, preexec_fn, close_fds, shell, cwd, env, universal_newlines, startupinfo, creationflags) 708 p2cread, p2cwrite, 709 c2pread, c2pwrite, --> 710 errread, errwrite) 711 except Exception: 712 # Preserve original exception in case os.close raises. /usr/lib/python2.7/subprocess.pyc in _execute_child(self, args, executable, preexec_fn, close_fds, cwd, env, universal_newlines, startupinfo, creationflags, shell, to_close, p2cread, p2cwrite, c2pread, c2pwrite, errread, errwrite) 1325 raise 1326 child_exception = pickle.loads(data) -> 1327 raise child_exception 1328 1329 OSError: [Errno 8] Exec format error
不确定这是我的问题还是我的错误,它在我的本地系统中工作(很久以前安装)但在 digital ocean 服务器中不工作。两者都是 Ubuntu 14。
我按照此页面的说明进行操作 - http://fedir.github.io/web/blog/2013/09/25/install-wkhtmltopdf-on-ubuntu/
请注意,我可以使用终端命令生成 pdf,但不能使用 pdfkit。
如果我遗漏了什么,请告诉我。
更新 - 来自此 link 的解决方案正在为我工作。
最佳答案
作为@user1305989的评论,以下是解决方案,
步骤:
首先安装xvfb服务器:
sudo apt-get install xvfb
从 http://wkhtmltopdf.org/downloads.html 获取所需的 wkhtmltopdf 版本.
对于 Ubuntu 14.04 64 位:
wget http://download.gna.org/wkhtmltopdf/0.12/0.12.2.1/wkhtmltox-0.12.2.1_linux-trusty-amd64.deb
安装 wkhtmltopdf:
sudo dpkg -i wkhtmltox-0.12.2.1_linux-trusty-amd64.deb
安装依赖项(如果需要):
sudo apt-get -f install
在
/usr/local/bin/
中创建符号链接(symbolic link):echo 'exec xvfb-run -a -s "-screen 0 640x480x16" wkhtmltopdf "$@"' | sudo tee /usr/local/bin/wkhtmltopdf.sh >/dev/null sudo chmod a+x /usr/local/bin/wkhtmltopdf.sh
关于python - Pdfkit/wkhtmltopdf - OSError : [Errno 8] Exec format error,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34714432/