python - Pdfkit/wkhtmltopdf - OSError : [Errno 8] Exec format error

标签 python django

请查看下面的错误跟踪。

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的评论,以下是解决方案,

步骤:

  1. 首先安装xvfb服务器:

    sudo apt-get install xvfb
    
  2. 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
    
  3. 安装 wkhtmltopdf:

    sudo dpkg -i wkhtmltox-0.12.2.1_linux-trusty-amd64.deb
    

    安装依赖项(如果需要):

    sudo apt-get -f install
    
  4. /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/

相关文章:

python - 当模型位于不同应用程序中时,ManytoMany 字段 django 模板

python - 为 namecheap 共享托管计划托管的网站安装 mysqlclient 时出现问题

python - 在 Python 中是否可以装饰一个函数以便记录它的开始和结束?

django - 如何在Django的同一页上返回结果?

python - Eclipse 错误缩进警告

python - 如何获取文本节点的所有者元素?

r - 使用Docker安装rpy2找不到R路径

ios - Django后端和iOS/移动客户端使用HTTP Rest的替代方法?

python - Django for 循环的倒数第二个迭代

python - Pandas Dataframe 根据日期过滤行