Python 3.4中PySide QGraphicsPixmapItem的内存泄漏

Python 3.4中PySide QGraphicsPixmapItem的内存泄漏,python,python-3.x,pyside,Python,Python 3.x,Pyside,在我的PySide应用程序中,我使用一个新的pixmap重复更新QGraphicsPixmapItem,该pixmap是我从一个(总是不同比例的)numpy数组创建的: # Once: from PySide import QtGui self._image_pixmap_item = self._scene.addPixmap(QtGui.QPixmap(width, height)) # Repeated: image = QtGui.QImage(numpy_array, width,

在我的PySide应用程序中,我使用一个新的pixmap重复更新QGraphicsPixmapItem,该pixmap是我从一个(总是不同比例的)numpy数组创建的:

# Once:
from PySide import QtGui
self._image_pixmap_item = self._scene.addPixmap(QtGui.QPixmap(width, height))

# Repeated:
image = QtGui.QImage(numpy_array, width, height)
pixmap = QtGui.QPixmap.fromImage(image)
self._image_pixmap_item.setPixmap(pixmap)
这段代码在Python2.7中运行良好,但在Python3.4中内存使用量不断增加。我可以通过在每个循环中手动调用垃圾收集器来解决此问题:

import gc
gc.collect()
但是性能(当然)相当差。我将Python3.4.3与PySide 1.2.4和numpy 1.11.2一起使用

这是PySide(相对较新的)Python3.x支持中的一个bug还是我遗漏了什么?另外,是否有一种方法可以直接填充pixmap缓冲区,而不必每次创建新的QImage

谢谢 亚历克斯

更新:
作为解决方法,使用qimage2ndarray()将numpy数组转换为QImage效果非常好。

使用与PyQt4/PyQt5相同的代码是否会出现泄漏?我必须说我还没有尝试过,这是一个不在PyQt下运行的相当复杂的应用程序的一部分。我会看看我是否可以分离这个类并用PyQt测试它。你是否使用PyQt4/PyQt5的相同代码泄漏?我必须说我还没有尝试过,它是一个相当复杂的应用程序的一部分,不在PyQt下运行。我将看看是否可以分离这个类并用PyQt测试它。