Ошибка OSE: dlopen() не удалось загрузить библиотеку: cairo / cairo-2 / cairo-gobject-2
Мой взгляд
@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
в это место
0 ответов
Убедитесь, что библиотеки разработки Cygwin для pixman (libpixman1-devel), png, pango и poppler (генерация PDF) установлены. Для этого запустите программу установки Cygwin, найдите pixman, poppler и libpng и установите библиотеки devel.
Когда я установил библиотеки разработки для Pango, я заметил, что он установил специальные версии GTK для Каира и других программ.
После того, как я установил эти библиотеки Cygwin, все заработало, и вышеприведенное сообщение об ошибке исчезло (я также скомпилировал и установил Pixman из исходного кода, который может быть или не быть частью исправления).