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

鉴于我很难重现这一点,并且不确定我身边或报告实验室是否有问题 - 我愿意就如何解决这个问题提出建议(可能是同步问题,因为许多同时生成或只是一个普通的错误或.. .)???

4

1 回答 1

2

在 reportlab 邮件列表上发布了这个问题,并且 Reportlab 不是线程安全的。

因此,如果您最终遇到间歇性问题并在多线程/Web 应用程序环境中运行,那么您将因此遇到非常奇怪的问题。

现在我需要弄清楚用什么来替换reportlab,嗯....

/ 延斯

于 2012-06-06T19:27:36.977 回答