Код выхода из цикла Python/Weasyprint -1073741819 (0xC0000005)

У меня есть файл csv с данными отслеживания для большого количества пользователей, которые мне нужно обобщить и превратить в отчет для каждого человека.

Я использую pandas и после некоторой предварительной обработки суммирую данные для каждого пользователя, используя цикл:

for u in users_active_week1:
    user_week1 = week1[week1['UserId'] == u].reset_index(drop=True)
    user_week2 = week2[week2['UserId'] == u].reset_index(drop=True)
    ....
    ....

Затем данные передаются Jinja для создания строки html для каждого пользователя с использованием шаблона. Здесь нет проблем.

    # render html
    env = Environment(loader=FileSystemLoader('.'), extensions=['jinja2.ext.i18n'])
    t = env.get_template('static/weeklyreport_template.html')
    html_out = t.render(vars)
    out_pdf = ("{}{}{}{}{}".format('out_pdf/TimeUsePlusReport-',week0date_str,'-', user_email, '.pdf'))

Строка html (или файл не имеет значения) затем передается в weasyprint для создания pdf:

#make pdf
    def makepdf(html):
        htmldoc = HTML(string=html, base_url="", encoding='UTF-8')
        return htmldoc.write_pdf(out_pdf, presentational_hints=True)
    makepdf(html_out)

    print("PDF-Report {}".format(user_email))

Каждый цикл создает около 6 идеально обработанных PDF-файлов, но затем останавливается, отмечая

Процесс завершен с кодом выхода -1073741819 (0xC0000005) в PyCharm или

Перезапуск ядра... в Spyder

Как это связано с нарушением прав доступа 0xC0000005?

Цикл работает без проблем при исключении части makepdf. Использование виртуальной среды не решает проблему. Если я изменяю порядок обработки данных разных пользователей, проблема повторяется, поэтому я предполагаю, что она не связана с конфликтами кодировки или формата данных. В моей системе не наблюдается заметной нехватки памяти. Добавление оператора sleep в цикл не меняет проблему. В фактически визуализированных PDF-файлах проблем с графикой не возникает. Weasyprint использует части библиотеки GTK+, установленной в моей системе вне Python.

Я благодарен за любой вклад в этот несколько туманный вопрос!

пиксельный вид обработанного PDF


person bountan    schedule 30.06.2021    source источник
comment
Возможный дубликат stackoverflow .com/questions/50620954/   -  person tripleee    schedule 30.06.2021