Вопрос по python, pdf – Устранение неполадок

5

Использование Django 1.4 / Python 2.7 / reportlab (версия с открытым исходным кодом) для создания PDF.

До сих пор все работало очень хорошо. Ранее генерация PDF (как в HTTP запрошенном возвращенном / загруженном сгенерированном PDF-файле) была на Django 1.3 и не была открыта для общественности. Мы обновили и сделали функцию бесплатной на многих страницах и теперь начинаем испытывать проблемы.

Я получаю «случайный» проблемы (как я вижу, в журналах время от времени бывают исключения), но мне никогда не удавалось воспроизвести проблемы самостоятельно (в большинстве случаев все работает).

Что я получаю, это следующий тип ошибок, которые всегда происходят в парах

    Exception Value: ParaParser instance has no attribute '_seq'
    Exception Location: /home/tss/lib/python2.7/reportlab-2.5-py2.7-linux-i686.egg/reportlab/platypus/paraparser.py in _complete_parse, line 1061

а потом

    Exception Value: 'NoneType' object has no attribute 'close'
    Exception Location: /home/tss/lib/python2.7/reportlab-2.5-py2.7-linux-i686.egg/reportlab/lib/xmllib.py in close, line 521

Учитывая, что мне трудно воспроизвести это, и я не уверен, что проблема на моей стороне или в заголовке отчета - я открыт для предложений о том, как устранить эту проблему (может ли это быть проблемой синхронизации, как во многих генерирующих одновременно, или просто ошибка или .. .) ???

Ваш Ответ

1   ответ
2

Разместите этот вопрос в списке рассылки reportlab, и Reportlab не является потокобезопасным.

Таким образом, любое использование reportlab, когда вы сталкиваетесь с периодически возникающими проблемами и работаете в среде многопоточных / веб-приложений, из-за этого вы получите действительно странные проблемы.

Теперь мне нужно решить, чем заменить reportlab, хм ....

/ Йенс

Не уверен, исправил ли я мои проблемы. Понял это, поскольку есть некоторые глобальные переменные, которые используются по умолчанию. Jens Lundstrom
Все еще используя Reportlab, общался с ними напрямую и заканчивал тем, что делал сброс их конфигурации в каждом представлении перед генерацией отчетов в формате PDF, и это решило некоторые проблемы: rl_config._reset () Jens Lundstrom
Есть ли успехи в этом? Ты пробовалpycairo?
Есть ли у него побочные эффекты? Если это не потокобезопасно, влияет ли это на PDF-файлы, которые начали генерироваться ранее (но все еще не были завершены)?

Похожие вопросы