OSError: dlopen() 无法加载库:cairo / cairo-2 / cairo-gobject-2。

3
我的看法
@api_view(['GET'])
    @renderer_classes((JSONRenderer,TemplateHTMLRenderer,BrowsableAPIRenderer))
    def admin_order_pdf(request, order_id):
    # def admin_order_pdf(request, order_id):
        order = get_object_or_404(Direct, id=order_id)
        price=order.price
        discount=order.discount
        total=price-discount
        html = render_to_string('bill/bill.html',
        {'order': order,'total':total})
        response = HttpResponse(content_type='application/pdf')
        response['Content-Disposition'] = 'filename=\
        "order_{}.pdf"'.format(order.id)
        weasyprint.HTML(string=html).write_pdf(response,
        stylesheets=[weasyprint.CSS(
        settings.STATIC_ROOT + 'css/pdf.css')])
        return response

当我尝试运行服务器或运行Weasyprint代码时,遇到了错误:

  raise OSError("dlopen() failed to load a library: %s" % ' / '.join(names))

OSError: dlopen() failed to load a library: cairo / cairo-2 / cairo-gobject-2

我已经更新了环境变量

C:\Program Files\GTK3-Runtime Win64\bin

到这个位置
1个回答

0

请确保已安装 pixman(libpixman1-devel)、png、pango 和 poppler(PDF 生成)的 Cygwin 开发库。要做到这一点,请运行 Cygwin 安装程序并查找 pixman、poppler 和 libpng,并安装 devel 库。

我注意到,当我安装 Pango 的开发库时,它会安装特殊的“GTK”版本的 Cairo 和其他依赖项。

一旦我安装了这些 Cygwin 库,一切都正常工作,上述错误消息也消失了(我还从源代码编译和安装了 Pixman,这可能或可能不是修复的一部分)。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接