OSError: cannot load library 'gobject-2.0-0'
В настоящее время я реализую код, который может распечатать выводы моей базы данных в файл pdf.
Когда я делаю 'manage.py runserver'
, выдается следующая ошибка (Title).Я только что установил weasyprint и импортировал HTML из него в верхнюю часть моего файла views, как показано ниже:
Views.py:
from django.shortcuts import render, redirect, get_object_or_404
from django.http import HttpResponse
import pyodbc
from django.http import FileResponse
from django.contrib import messages
from django.views import View
from django.template.loader import render_to_string
from weasyprint import HTML
import tempfile
from django.db.models import Sum
def home(request):
return render(request , 'main/home.html')
def Kyletrb(request):
all = 'SELECT Master_Sub_Account , cAccountTypeDescription , Debit , Credit FROM [Kyle].[dbo].[PostGL] '\
'Inner JOIN [Kyle].[dbo].[Accounts] '\
'on Accounts.AccountLink = PostGL.AccountLink '\
'Inner JOIN [Kyle].[dbo].[_etblGLAccountTypes] as AccountTypes '\
'on Accounts.iAccountType = AccountTypes.idGLAccountType'
cursor = cnxn.cursor();
cursor.execute(all);
xAll = cursor.fetchall()
cursor.close()
xAll_l = []
for row in xAll:
rdict = {}
rdict["Description"] = row[0]
rdict["Account"] = row[1]
rdict["Credit"] = row[2]
rdict["Debit"] = row[3]
xAll_l.append(rdict)
return render(request , 'main/Kyletrb.html' , {"xAlls":xAll_l})
def printToPdf(request):
response = HttpResponse(content_type= 'application/pdf')
response['Content-Disposition']= 'attachment; filename=TrialBalance' + \
str(datetime.datetime.now()) + '.pdf'
response['Content-Transfer-Encoding'] = 'binary'
all = 'SELECT Master_Sub_Account , cAccountTypeDescription , Debit , Credit FROM [Kyle].[dbo].[PostGL] '\
'Inner JOIN [Kyle].[dbo].[Accounts] '\
'on Accounts.AccountLink = PostGL.AccountLink '\
'Inner JOIN [Kyle].[dbo].[_etblGLAccountTypes] as AccountTypes '\
'on Accounts.iAccountType = AccountTypes.idGLAccountType'
cursor = cnxn.cursor();
cursor.execute(all);
xAll = cursor.fetchall()
cursor.close()
xAll_l = []
for row in xAll:
rdict = {}
rdict["Description"] = row[0]
rdict["Account"] = row[1]
rdict["Credit"] = row[2]
rdict["Debit"] = row[3]
xAll_l.append(rdict)
html_string=render_to_string('main/pdf-trialbalance.html' , {"xAlls":xAll_l})
html=HTML(string=html_string)
result=html.write_pdf()
with tempfile.NamedTemporaryFile(delete=True) as output:
output.write(result)
output.flush()
output=open(output.name, 'rb')
response.write(output.read())
return response
Полное сообщение об ошибке:
EXTRAS pdf-trialbalance.html:
<title>PDF Outuput - TrialBalance</title>
<style >
@page{
size: 'A4';
margin: 2.5cm 1.5cm 3.5cm 1.5cm;
@top-center{
content: 'COMPANY'
}
}
</style>
{% block content%}
Kyletrb.html: