python中的内存损坏

时间:2014-01-29 12:59:57

标签: python memory pyramid

我正在使用pyenv python版本2.7.5在python-pyramid上部署我的项目。现在在处理期间我遇到了内存泄漏错误。此错误首次出现。在使用系统python 2.7.3的其他服务器上,不会发生此错误。

我见过其他帖子建议使用像valgrind这样的工具来捕获内存转储。但是我不确定如何将它与python-pyramid一起使用。

内存转储非常大,stackoverflow不允许我在这里发布。所以它可以在http://pastebin.com/atUW89eX

中找到

有什么建议吗?

更新

  1. 我们已经使用apt-get安装了python-uno但是我们需要在pyenv下的python2.7.5下使用uno。所以我们将uno.py和unohelper.py从Python2.7.3复制到了Python2.7.5。
  2. 根据this libreoffice支持Python2.7.5。

2 个答案:

答案 0 :(得分:0)

pyuno有几个潜在的问题:

  1. 错误的python版本。您必须使用与soffice一样的python的完全相同的点版本。您还必须使用相同的unicode选项(即UCS4或UCS2)进行编译。

  2. pyuno界面不是很强大。您必须只传递字节流而不是 unicode流

  3. 那些是重要的。您还需要基础知识,例如具有正确的LD_LIBRARY_PATH和PYTHONPATH。

答案 1 :(得分:-1)

在调用pyuno时发生错误,该调用包装了libreoffice的本机代码。

我假设您通过pyuno / libreoffice创建/修改文档。恕我直言,您应该通过语句调试程序语句,其中pyuno涉及(例如通过注释语句和运行程序)。这个或获得带有调试信息的libreoffice库。

从签名中,我的猜测是你正在传递一个字符串对象,它应该是unicode而不是。